转载

【MySQL】数据库定时备份及删除

username:数据库用户名
password:数据库密码
DBName :要备份的数据库名


在backup目录下执行命令:vi bkdb.sh,并粘贴写好的备份和删除脚本,例如:

mysqldump -uroot -proot wms_prod | gzip > /backup/wms_prod_$(date +%Y%m%d_%H%M%S).sql.gz

workdir="/backup/"

do_delete()
{
echo file name is $workdir

find $workdir -name '*.sql.gz' -and -mtime +7 -type f -delete
if [ $? -eq 0 ];then
echo $date delete $dir success!
else
echo $date delete $dir FAILD!
fi

}
do_delete

以上内容有两个作用:

备份数据库:wms_prod。
删除7天前/backup/目录下后缀名为.sql.gz的文件。
添加可执行权限
chmod u+x bkdb.sh
1
检验脚本是否可用,执行命令:./bkdb.sh。如果可用,则backup目录下会生成备份文件。

添加计划任务
执行命令crontab -e。如果出现提示信息:command not found,可参考文章:安装crontab,自行完成安装。
这时就像使用vi编辑器一样,可以对计划任务进行编辑。输入以下内容:
0 22 * * * /backup/bkdb.sh

意思是每天在22:00执行shell脚本/backup/bkdb.sh。


crontab相关
#查看命令帮助

crontab 并不支持-h或–help之类的选项,不过还是可以通过它查看命令帮助

# crontab -h
crontab:无效选项 -- h
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)


也可以使用 info crontab 命令查看详细的帮助信息。

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除没个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l

再例如,root想删除fred的cron设置:crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

#服务状态控制

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看状态

正文到此结束
该篇文章的评论功能已被站长关闭