定时备份数据库脚本并压缩删除历史文件
1.创建备份脚本
vim mysql-backup.sh
#!/bin/bash
bak=`date +%y-%m-%d-%H`
tool=/usr/local/mysql/bin/mysqldump
$tool -uroot -p密码 --lock-all-tables --all-databases | gzip > /路径/$bak.sql.gz
find 路径 -name "name_*.sql.gz" -type f -mtime +7 -exec rm -rf{} ; > /dev/null 2>&1
路径是sql备份文件的文件夹
-name这些就找文件名了
-mtime +7是每隔7天删除一次
2.为脚本添加执行权限
chmod +x mysql-backup.sh
3.添加定时计划
# crontab -e (和vim编辑器一样)
# crontab配置文件格式:分 时 日 月 周
命令 crontab -e
0 0 * * * //mysql-backup.sh 表示每天0点0分执行备份
4.重启crontab
/etc/init.d/crond restart
如果需要将备份文件传送到另外一个服务器,需要通过scp,需要在两边设备上做无密码验证
本地服务器:A
远程服务器:B
1.在 A 上运行 ssh-keygen -t rsa 在/root/.ssh 下生成id_rsa 和 id_rsa.pub 两个文件
在/root/.ssh下复制备份一份id_rsa.pub 命名为 id_rsa.pub.A
2. 在 B 上也同样运行 ssh-keygen -t rsa
3. 在 B 的 /root/.ssh 下创建authorized_keys文件 把A 中 id_rsa.pub.A 文件 传到 B /root/.ssh 下
通过 cat 命令 把id_rsa.pub.A 写到 authorized_keys 文件中
scp ./id_rsa.pub.A B的IP:/root/.ssh
cat id_rsa.pub.A >> authorized_keys
4.配置完毕
测试:
scp ./文件 192.168.190.208:/root/.ssh 无需输入密码执行成功
在配置完无需密码进行传送后在脚本下添加一句
scp 源路径 目的ip:目的路径