数据库备份命令
#!/bin/bash
#保留备份个数,会删除时间较早的.dump备份
number=5
#设置备份保存路径,替换成自己的备份保存路径
backup_dir=/home/gas/databasebackup/hainuo/
#日期格式
dd=`date +%Y%m%d`
#备份工具
tool=mysqldump
#数据库用户名
username=root
#数据库密码,由于密码可能包含特殊字符,需要用''转义
password='root123'
#数据库链接地址
host='127.0.0.1'
#数据库看装目录,如该文件执行生成的.dump文件没有数据则在tool前加上这一变量,反之则去掉
mysql=/etc/mysql/
#将要备份的数据库名称,yourdb替换成自己要备份的数据库名,此脚本只支持备份一个数据库,多数据库mysqldump用法
database_name=test
#远程备份
#$mysql$tool -h$host -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#本地备份
$mysql$tool -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt
#查询本目录下所有备份文件
#查询备份文件是按照备份文件的生成时间来计算的
FileNum=$(ls -l $backup_dir/*.dump | grep ^- | wc -l)
echo "Number of backup files:"$FileNum >> $backup_dir/log.txt
while(( $FileNum > $number ))
do
#取最旧的文件,*.*可以改为指定文件类型
OldFile=$(ls -rt $backup_dir/*.dump | head -1)
echo "Delete File:"$backup_dir'/'$OldFile >> $backup_dir/log.txt
rm -f $OldFile
let "FileNum--"
done
定时执行数据库备份脚本
#### 表示每天 3 点钟执行备份
01 3 * * * root /home/gas/databasebackup/hainuo/baksql.sh
(root权限下)
crontab启动:/etc/init.d/cron start ( service cron start )
crontab重启: /etc/init.d/cron restart (service cron restart )
crontab关闭: /etc/init.d/cron stop ( service cron stop )
## 在终端中,可以利用 ps -aux|grep cron查询crontab状态,默认情况下,是自启动的。