Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- mw_var()
- {
- local mw_local_settings=$1
- local mw_var=$2
- sed -n "s/^\$$mw_var = \"\(.*\)\";/\1/p" $mw_local_settings
- }
- mw_backup()
- {
- local mw_root=$1
- local mw_name=$(basename $mw_root)
- local mw_local_settings=$mw_root/LocalSettings.php
- local mw_local_settings_backup=$(tempfile)
- local mw_db_type=$(mw_var $mw_local_settings "wgDBtype")
- local mw_db_server=$(mw_var $mw_local_settings "wgDBserver")
- local mw_db_name=$(mw_var $mw_local_settings "wgDBname")
- local mw_db_user=$(mw_var $mw_local_settings "wgDBuser")
- local mw_db_password=$(mw_var $mw_local_settings "wgDBpassword")
- local mw_backup_output="/opt/mediawiki-backup/$mw_name"
- [ "$mw_db_type" != "mysql" ] && echo "$mw_db_type is not supported" && exit 1
- [ ! -d "$mw_backup_output" ] && echo "$mw_backup_output directory does not exist" && exit 2
- [ ! -d "$mw_backup_output/.git" ] && echo "$mw_backup_output directory is not a git repository" && exit 3
- cp -p $mw_local_settings $mw_local_settings_backup
- cp $mw_local_settings $mw_backup_output
- echo "\$wgReadOnly = 'Dumping Database, Access will be restored shortly';" >> $mw_local_settings
- mysqldump -h $mw_db_server -u $mw_db_user -p $mw_db_name --default-character-set=utf8 > $mw_backup_output/mw-db.sql
- cd $mw_backup_output
- local mw_commit_message="$(date --iso-8601) - $(tail -n 1 mw-db.sql)"
- sed -i '$ d' mw-db.sql
- git add mw-db.sql LocalSettings.php && git commit -m "$mw_commit_message"
- cd -
- mv $mw_local_settings_backup $mw_local_settings
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement