Advertisement
Guest User

Untitled

a guest
May 22nd, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. mw_var()
  4. {
  5. local mw_local_settings=$1
  6. local mw_var=$2
  7.  
  8. sed -n "s/^\$$mw_var = \"\(.*\)\";/\1/p" $mw_local_settings
  9. }
  10.  
  11. mw_backup()
  12. {
  13. local mw_root=$1
  14. local mw_name=$(basename $mw_root)
  15. local mw_local_settings=$mw_root/LocalSettings.php
  16. local mw_local_settings_backup=$(tempfile)
  17. local mw_db_type=$(mw_var $mw_local_settings "wgDBtype")
  18. local mw_db_server=$(mw_var $mw_local_settings "wgDBserver")
  19. local mw_db_name=$(mw_var $mw_local_settings "wgDBname")
  20. local mw_db_user=$(mw_var $mw_local_settings "wgDBuser")
  21. local mw_db_password=$(mw_var $mw_local_settings "wgDBpassword")
  22. local mw_backup_output="/opt/mediawiki-backup/$mw_name"
  23.  
  24. [ "$mw_db_type" != "mysql" ] && echo "$mw_db_type is not supported" && exit 1
  25. [ ! -d "$mw_backup_output" ] && echo "$mw_backup_output directory does not exist" && exit 2
  26. [ ! -d "$mw_backup_output/.git" ] && echo "$mw_backup_output directory is not a git repository" && exit 3
  27.  
  28. cp -p $mw_local_settings $mw_local_settings_backup
  29. cp $mw_local_settings $mw_backup_output
  30. echo "\$wgReadOnly = 'Dumping Database, Access will be restored shortly';" >> $mw_local_settings
  31.  
  32. mysqldump -h $mw_db_server -u $mw_db_user -p $mw_db_name --default-character-set=utf8 > $mw_backup_output/mw-db.sql
  33.  
  34. cd $mw_backup_output
  35. local mw_commit_message="$(date --iso-8601) - $(tail -n 1 mw-db.sql)"
  36. sed -i '$ d' mw-db.sql
  37. git add mw-db.sql LocalSettings.php && git commit -m "$mw_commit_message"
  38. cd -
  39.  
  40. mv $mw_local_settings_backup $mw_local_settings
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement