Difference between revisions of "Backup scripts"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) |
Rafahsolis (talk | contribs) m (→MediaWiki) Tag: visualeditor |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | = MediaWiki = | + | =HD dd= |
| + | <source lang="bash">#!/bin/bash | ||
| + | USAGE="./$(basename ${0}) UUID output_filename" | ||
| + | |||
| + | if [ -z "${1}" ]; then | ||
| + | echo ${USAGE} | ||
| + | exit | ||
| + | fi | ||
| + | if [ -z "${2}" ]; then | ||
| + | echo ${USAGE} | ||
| + | exit | ||
| + | fi | ||
| + | |||
| + | |||
| + | BACKUP_ROOT=/mnt/backup | ||
| + | HD=$(blkid|grep $1|awk -F : '{print $1}') | ||
| + | |||
| + | ISO=${BACKUP_ROOT}/$(hostname)/$(date '+%Y/%m')/$2.iso | ||
| + | |||
| + | echo "dd if=${HD} of=${ISO} bs=1M" | ||
| + | dd if=${HD} of=${ISO} bs=1M</source> | ||
| + | |||
| + | =MediaWiki= | ||
| + | |||
| + | == With database dump == | ||
First add the following line to LocalSetings.php | First add the following line to LocalSetings.php | ||
<nowiki>$wgReadOnly = 'Dumping Database, Access will be restored shortly';</nowiki> | <nowiki>$wgReadOnly = 'Dumping Database, Access will be restored shortly';</nowiki> | ||
| Line 5: | Line 29: | ||
The script should be in the MediaWiki installation (where your [[LocalSettings.php]] is stored as well). | The script should be in the MediaWiki installation (where your [[LocalSettings.php]] is stored as well). | ||
| − | == mediawiki_mysql_backup.sh == | + | ==mediawiki_mysql_backup.sh== |
| − | + | <source lang="bash"> | |
#!/bin/bash | #!/bin/bash | ||
FNAME=TS=RHSWiki`date +%d-%m-%Y` | FNAME=TS=RHSWiki`date +%d-%m-%Y` | ||
| Line 14: | Line 38: | ||
</source> | </source> | ||
Bonus (not required): | Bonus (not required): | ||
| − | + | <source lang="bash"> | |
# careful here .. if this fails you'll delete files from the current directory instead. | # careful here .. if this fails you'll delete files from the current directory instead. | ||
# Some checking might be in order, especially if you run this script from somewhere else | # Some checking might be in order, especially if you run this script from somewhere else | ||
| Line 34: | Line 58: | ||
done | done | ||
</source> | </source> | ||
| − | [http://www.mediawiki.org/wiki/User:Flominator/Backup_MW Source] | + | |
| + | == With automysqlbackup == | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | #!/bin/bash | ||
| + | DATE=$(date +"%Y-%d-%m") | ||
| + | /usr/sbin/automysqlbackup | ||
| + | rsync -avp /var/lib/automysqlbackup/daily/wikidb /root/wikibackup/tmp/ | ||
| + | rsync -avLp /var/www/mediawiki /root/wikibackup/tmp/ | ||
| + | cd /root/wikibackup/tmp/ | ||
| + | tar -czvf "/root/wikibackup/wikibackup-${DATE}.tar.gz" * | ||
| + | mv "/root/wikibackup/wikibackup-${DATE}.tar.gz" /tmp/ | ||
| + | |||
| + | </syntaxhighlight>[http://www.mediawiki.org/wiki/User:Flominator/Backup_MW Source] | ||
| + | <br /> | ||
Latest revision as of 15:04, 10 April 2019
HD dd
#!/bin/bash
USAGE="./$(basename ${0}) UUID output_filename"
if [ -z "${1}" ]; then
echo ${USAGE}
exit
fi
if [ -z "${2}" ]; then
echo ${USAGE}
exit
fi
BACKUP_ROOT=/mnt/backup
HD=$(blkid|grep $1|awk -F : '{print $1}')
ISO=${BACKUP_ROOT}/$(hostname)/$(date '+%Y/%m')/$2.iso
echo "dd if=${HD} of=${ISO} bs=1M"
dd if=${HD} of=${ISO} bs=1M
MediaWiki
With database dump
First add the following line to LocalSetings.php
$wgReadOnly = 'Dumping Database, Access will be restored shortly';
Delete this line after the backup.
The script should be in the MediaWiki installation (where your LocalSettings.php is stored as well).
mediawiki_mysql_backup.sh
#!/bin/bash
FNAME=TS=RHSWiki`date +%d-%m-%Y`
mysqldump --database DATABASE_NAME -u USERNAME -pPASSWORD --add-drop-table -B > ${FNAME}.sql
zip -r ./backup/${FNAME}.zip images/ ${FNAME}.sql LocalSettings.php extensions/
rm ${FNAME}.sql
Bonus (not required):
# careful here .. if this fails you'll delete files from the current directory instead.
# Some checking might be in order, especially if you run this script from somewhere else
cd backup
#Count files in directory (hidden files (filename starts with a dot) are ignored)
file_count=`ls | wc -l`
#Do until there are more than or equal 6 files present
while [ $file_count -ge 6 ]
do
#you can save deleted filenames in variable (e.g. for deleting files also in backup directory)
#not recommended for filenames with space(s)
del_files="${del_files} `ls | head -n 1`"
#Delete alphabetically oldest file (ls sort by name is default)
rm `ls | head -n 1`
#Count files again
file_count=`ls | wc -l`
done
With automysqlbackup
#!/bin/bash
DATE=$(date +"%Y-%d-%m")
/usr/sbin/automysqlbackup
rsync -avp /var/lib/automysqlbackup/daily/wikidb /root/wikibackup/tmp/
rsync -avLp /var/www/mediawiki /root/wikibackup/tmp/
cd /root/wikibackup/tmp/
tar -czvf "/root/wikibackup/wikibackup-${DATE}.tar.gz" *
mv "/root/wikibackup/wikibackup-${DATE}.tar.gz" /tmp/