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