在Linux下,有时需要定时执行一些任务,如定时检测系统资源信息、定时备份数据库等操作,可以借助crontab命令,其基本命令格式如下:

    * * * * * {命令}


    第一个*表示每xx(1-59)分钟,每分钟用*或*/1表示


    第二个*表示每xx(0-23)小时


    第三个*表示日期,1-31


    第四个*表示月份,1-12


    第五个*表示星期x(0-6, 0为星期日)


    {命令}为要执行的命令或脚本


    crontab有如下几个常用参数:


    -l: 列出用户目前的crontab


    -e: 编辑当前用户的crontab


    -d: 删除当前用户的crontab


    在CentOS系统下,crontab命令的文件存放在目录/var/spool/cron下,每个用户的crontab一个文件,如下所示:


    


    使用-e编辑任务保存后,查看当前用户的定时任务列表如下:


    


    表示每天的3点45分执行shell脚本来备份数据库,脚本大致内容如下:
#!/bin/bash date_now=$(date +%Y%m%d%H%M) db_user=xxx db_port=xxx db_host=xxx
db_pwd=xxx db_name=xxx echo "Starting ..." start=`date +%s`
/usr/local/mysql/bin/mysqldump -u${db_user} -h${db_host} -P${db_port}
-p${db_pwd} --hex-blob -R -E --single-transaction -B ${db_name}|gzip >
/backup_path/${db_name}_${date_now}.sql.gz end=`date +%s` dif=$[ end - start ]
echo "备份时间: " ${date_now} " 备份的数据库名: " ${db_name} " ,耗时: " ${dif} "s" >>
/xx/xxx/backup_db_info.txt
保存shell脚本增加x可执行权限后即可。

改进点:

1. 备份多个数据库,可以考虑用for循环

2.
如上是全库结构加数据库备份(可加-d参数只备份结构),数据量大的话时间会长,可以修改只备份重要数据表,其他小表可以另外时间备份,修改脚本或增加多一个定时任务即可。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信