直接上代码
一,安装cron
1 安装cron
sudo yum install cronie2 启动cron
sudo systemctl start crond3 设置开机启动
sudo systemctl enable crond4 查看任务
crontab -l
没有任务则显示:no crontab for root
二,备份脚本
#!/bin/bash
# 备份文件要保存的目录
basepath='/data1/mysql/bak/'
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
# 备份数据库生成SQL文件
mysqldump -uroot -p'pwd' database1 > $basepath$(date +%Y%m%d)_database1.sql
mysqldump -uroot -p'pwd' database2 > $basepath$(date +%Y%m%d)_database2.sql
mysqldump -uroot -p'pwd' database3 > $basepath$(date +%Y%m%d)_database3.sqlcd $basepath
# 将生成的SQL文件压缩
tar zPcf $(date +%Y%m%d)_database1.tar.gz $(date +%Y%m%d)_database1.sql
tar zPcf $(date +%Y%m%d)_database2.tar.gz $(date +%Y%m%d)_database2.sql
tar zPcf $(date +%Y%m%d)_database3.tar.gz $(date +%Y%m%d)_database3.sql# 删除7天之前的备份数据
find $basepath -mtime +7 -name "*.tar.gz" -exec rm -rf {} \;
# 删除生成的SQL文件
rm -rf $basepath/*.sql
在当前路径下,执行:
./mysqlbak.sh
显示这个代表成功:mysqldump: [Warning] Using a password on the command line interface can be insecure.
如果报错:-bash: ./mysqlbak.sh: cannot execute: required file not found1 设置权限
chmod -R 777 /data12 查看文本格式
cat -A mysqlbak.sh
如果发现:^M$ 字符说明是windows格式3 设置Linux格式
sed -i "s/\r//" mysqlbak.sh4 再次启动
./mysqlbak.sh
三,设置cron任务
1 设置cron任务(vim编辑)
crontab -e2 设置cron参数(每7天早上2点执行)
0 2 */7 * * sh /data1/mysqlbak.sh3 保存退出后显示
crontab: installing new crontab4 重启cron
systemctl restart crond