为了实时的把网站数据库等重要内容备份到本地的Linux里面,所以使用以下方法
一、网站内容在远程VPS上面,这里面设为机器A
which rsync 检查是不是安装了rsync命令
crontab -e 添加定时备份任务 如下
*/1 * * * * /usr/bin/mysqldump -uroot 数据库名 > /home/wwwroot/backup/db_备份名.sql_backup
0 0 * * * /usb/bin/tar -zcvf /home/备份目录-`date +%F`.tar.gz www.mrwen.me
解决mysqldump备份时需要输入密码的问题方法
vim .my.cnf 内容如下
[mysqldump]
user = "数据库用户名"
password = "数据库密码"
chmod 600 .my.cnf 权限设为600
二、备份到的目标机器,设为机器B 我这里是本机
ssh-keygen -t rsa 创建ssh密钥
ssh-copy-id -i .ssh/id_rsa.pub 到机器A 这样免密钥登录
yum install rsync -y 安装rsync命令
设置定时同步任务
* * * * * /usr/bin/rsync -av -r --delete-after -e 'ssh -p 端口' root@A机器IP:/home/目录/backup /root/mrwen_backup/
或者创建sh脚本,内容如下
#!/bin/bash
old_date=`date -d "-1 day" +%F`
rm -rf /home/wwwroot/backup/mrwen.me-$old_date.tar.gz
/usr/bin/tar -zcvf /home/wwwroot/backup/mrwen.me-`date +%F`.tar.gz /home/wwwroot/www.mrwen.me
rm -rf /home/wwwroot/backup/db_mrwen.sql_backup-$old_date
/usr/bin/mysqldump -uroot db_mrwen > /home/wwwroot/backup/db_mrwen.sql_backup-`date +%F`
然后在crontab定时任务里面定时运行这个脚本
三、大功告成