在home目录下新建autobackup.sh文件,输入如下内容,参数根据情况自己设置
#!/bin/sh
#请设置以下参数
#db_array 要备份的数据库名,可以备份多个
db_array=(rms sales cloudserver iskyshop)
db_user=root
db_pwd=mysqladmin
#本目录只保留近两周每天的备份(日目录)
db_day_path=/home/dbBackupPerDay
#本目录保留每月1日的备份(月目录)
db_month_path=/home/dbBackupPerMonth
#mysqldump目录
#mysqldump=/opt/lampp/bin/mysqldump
mysqldump=/usr/bin/mysqldump
#创建文件夹
mkdir -p $db_day_path
mkdir -p $db_month_path
#backup mysql
for dbname in ${db_array[@]};
do
data=$(date +%Y-%m-%d)
fileName=$dbname$data
echo 'do backup...'$fileName
#每日备份到日目录
$mysqldump -u$db_user -p$db_pwd $dbname > $db_day_path/$fileName.sql
#每月1日备份到月目录
day=$(date +%d)
if [ $day -eq "1" ]
then
$mysqldump -u$db_user -p$db_pwd $dbname > $db_month_path/$fileName.sql
fi
done
#删除日目录两周前的备份
TwoWeeksAgo=$(date +"%Y-%m-%d" -d "-14 days")
rm -rf $db_day_path/*$TwoWeeksAgo.sql
#mysql其它参数
#-R 包括函数和存储过程
保存文件后,在系统中运行如下命令
crontab -e
在其中添加一行,每天2点执行
0 2 * * * sh /home/autobackup.sh