定时任务
crontab -e
#数据库备份
#每天凌晨3点备份一次数据库
00 03 * * * /home/java_space/script/db_backup.sh >> /home/java_space/script/logs/db/db.backup.`date +"\%Y\%m\%d"`.log 2>&1
脚本
#!/bin/bash
#获取当前时间
today=$(date "+%Y%m%d")
# 删除10天前
before10=$(date -d"10 day ago" +%Y%m%d)
# backupHome="/home/backup/"
backupHome="/home/backup/"
username="数据库用户名"
password="数据库密码"
databases=("数据库1" "数据库2")
# mysqldump="/usr/local/mysql/bin/mysqldump"
mysqldump="/usr/local/mysql/bin/mysqldump"
echo "Backup Databases..."
#进入到备份文件目录
cd ${backupHome}
for db in ${databases[@]};do
# 备份文件
${mysqldump} -u${username} -p${password} --lock-all-tables --flush-logs ${db} > ${db}_${today}.sql;
#压缩备份文件
tar zcvf ${db}.${today}.tar.gz ${db}_${today}.sql;
# 删除10天前的压缩文件跟今天未压缩的文件
rm -f "${db}_${before10}.sql.tar.gz";
rm -f "${db}_${today}.sql";
echo "finish backup mysql database ${db}_${before10}.sql.tar.gz";
done
查看日志, 如果提示 "/bin/sh: /home/java_space/script/db_backup.sh: Permission denied
" 权限不足
使用命令
# 授权脚本可执行权限
chmod a+x /home/java_space/script/db_backup.sh