1.脚本内容
单独的脚本
#!/bin/sh
if [ $# != 4 ]; then
echo "Usage: $0 db_host db_user db_pwd db_name"
exit
fi
prefix=`date +"%Y%m%d%H%M%S"`
filePath="/root/dbBackup/"`date +"%Y%m"`/"$4"/"$prefix"/
if [ ! -d "$filePath" ]; then
mkdir -p "$filePath"
fi
dbfile="$prefix"_"$4".sql
mysqldump -h $1 -u$2 -p$3 $4 > "$filePath""$dbfile"
cd "$filePath"..
tar czf "$prefix".tar.gz "$prefix"/ --remove-files
All脚本
#!/bin/sh
prefix=`date +"%Y%m%d%H%M%S"`
filePath="/root/dbBackup/"`date +"%Y%m"`"/all/""$prefix"/
if [ ! -d "$filePath" ]; then
mkdir -p "$filePath"
fi
db1="$prefix"_db1.sql
db2="$prefix"_db2.sql
mysqldump -h 10.2.176.129 -ufhdev -p#=F0KYIqUk db1 > "$filePath""$db1"
mysqldump -h 10.2.176.129 -ufhdev -p#=F0KYIqUk db2 > "$filePath""$db2"
cd "$filePath"..
tar czf "$prefix".tar.gz "$prefix"/ --remove-files
还可以使用
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
2.crontab 任务
# 分 时 日 月 周 命令
30 0 * * 0-4 /root/dbBackup/dbbk_all.sh > /dev/null 2>&1
30 7,12,15,18 * * 1-5 /root/dbBackup/dbbk_single.sh db_host db_user "passwd" db2 > /dev/null 2>&1
周一到周五,每天晚上12:30全部备份
周一到周五,每天7:30, 12:30, 15:30, 18:30 启动任务单独备份某个库