Magento2 项目测试自动备份mysql(crontab)

因为数据库在是远程,程序一般我们有定期备份,这里我们把重要的sql数据作定期备份

首先建个文件
cd /home
mkdir backup
cd backup

编辑待处理命令
vi bkDatabaseName.sh

为了减小文件大小采用压缩格式
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

可以运行一下
./bkDatabaseName.sh

添加权限
chmod u+x bkDatabaseName.sh

编写计划

crontab -e

这里是为了做测试添加了一个1分钟自动备份一次
*/1 * * * * /home/backup/bkDatabaseName.sh

也可以采有scp传输到另一台服务器
scp -r 目标文件 root@***.***.***.***:/路径

如果自动备份处理这里就要用到 crontab 计划任务

crontab -e 编辑
crontab -l 查询

样本
#!/bin/bash
rq=`date +%Y%m%d`
mysqldump -uroot -p lsweb | gzip > /home/backup/web_$rq.sql.gz
tar zcvf /home/backup/web_$rq.tar.gz /home/wwwroot/www.abc.com
scp -r /home/backup/web_$rq.sql.gz root@42.120.4.162:/alidata/www/backup
scp -r /home/backup/web_$rq.tar.gz root@42.120.4.162:/alidata/www/backup
复制到另外一台服务器

find /home/backup -mtime +5 -name "web*.sql.gz" -exec rm -rf {} \;
//删除5天前的
find /home/backup -mtime +5 -name "web*.tar.gz" -exec rm -rf {} \;

这里scp 需要密码,要做另外一个处理,就是添加ssh权限
ssh-keygen -t rsa

会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub

scp .ssh/id_rsa.pub 42.120.4.162:/root/.ssh/authorized_keys
这样第二次就不会出现密码

crontab -e 编辑

30 11 * * * /home/backup/bkDatabaseName.sh
每天11:30运行

sudo yum install rsync (如果大文件可以采用)

rsync -av --progress 参数带进度

多台Linux服务器SSH相互访问无需密码
http://www.linuxidc.com/Linux/2013-02/79156.htm

发表评论
Magento2 技术支持 上门服务

工作时间
周一至周六
9:00-18:00
相关咨询电话
15360669780
侨海科技