环境: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