環境:centos7 下有兩個PHP網站和MySQL數據庫,需要將網站內容和數據庫備份到windows共享存儲上
思路:在Centos上創建臨時文件夾,備份兩個數據庫到臨時文件夾,再備份Web文件到臨時文件夾,掛載windows共享文件夾,拷貝臨時文件夾下備份後的文件到掛載的路徑下,拷貝完成後卸載掛載
步驟1 創建臨時備份路徑
mkdir /data/www/dbbak/
步驟2 創建腳本
1、備份MySQL數據庫
cat mysql_bak_mysqlname.sh #!/bin/sh # File: /data/www/dbbak/mysql_bak_mysqlname.sh # Database info /usr/bin/mysqldump -u'mysqlusername' -p'mysqlpassword' --databases mysqlname |gzip > /data/www/dbbak/mysqlname_dump_`/bin/date+%Y%m%d_%H%M%S`.sql.gz
2、備份Web文件
cat bakweb.sh #!bin/bash tar -zcvf /data/www/dbbak/www_dump_`/bin/date+%Y%m%d_%H%M%S`.tar.gz /data/www/default/
3、掛載windows共享文件夾
cat mount_ato.sh #!bin/bash mount -t cifs -o username="share username",password="share passwd" //192.168.1.***/ServerBackup/Liunxbackup/WEB /data/www/dbbak/winbak/
4、拷貝備份後的文件到掛載的windows路徑下
cat copy_ato.sh #!bin/bash \cp /data/www/dbbak/**_dump_**.gz /data/www/dbbak/winbak/
注: \cp #拷貝時直接覆蓋
5、卸載掛載路徑cat umount_ato.sh #!bin/bash umount /data/www/dbbak/winbak/
6、創建自動執行腳本
cat auto_bak.sh #!bin/bash /bin/sh /data/www/dbbak/mysql_bak_mysqlname.sh /bin/sh /data/www/dbbak/mount_ato.sh /bin/sh /data/www/dbbak/bakweb.sh /bin/sh /data/www/dbbak/copy_ato.sh /bin/sh /data/www/dbbak/umount_ato.sh
步驟3 創建定時備份任務
crontab -e #每週五 23:00 執行備份MySQL和Web到windows共享路徑下 00 23 * * 5 /bin/sh /data/www/dbbak/auto_bak.sh