vim mysqlbak.sh
#!/bin/bash
user='root'
pass='123456'
date=`date +%Y-%d-%m-%H-%M`
dir="/www/server/data"
#備份單個數據庫
if [ -d $dir ];then
mysqldump -u$user -p$pass gaoxiao | gzip >${dir}/gaoxiao-${date}.sql.gz
else
mkdir -p $dir
mysqldump -u$user -p$pass gaoxiao | gzip >${dir}/gaoxiao-${date}.sql.gz
fi
##備份所有數據庫(本案例是單獨備份了一個庫,然后又備份了全庫,所以這里使用的 $? -eq 0 ,根據實際情況做一些修改即可。)
####(if [ $? -eq 0 ] 這里意思是$?:檢測上一條命令是否成功,成功一般是等於0的,然后如果等於0,那就開始備份全庫)
if [ $? -eq 0 ];then
mysqldump -u$user -p$pass --all-databases | gzip >${dir}/mysqlall-${date}.sql.gz
fi
#刪除大於七天的數據,時間根據公司要求定
find $dir -mtime +7 -name "*.gz" -exec rm -rf {} \;
保存退出。
設置定時任務,案例設置的是每天的23:00開始備份。