Linux配置定时执行指定脚本

    在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 d b u s e r < / s p a n > − h < s p a n c l a s s = " h l j s − v a r i a b l e " > {db_user}</span> -h<span class="hljs-variable"> dbuser</span>h<spanclass="hljsvariable">{db_host} -P d b p o r t < / s p a n > − p < s p a n c l a s s = " h l j s − v a r i a b l e " > {db_port}</span> -p<span class="hljs-variable"> dbport</span>p<spanclass="hljsvariable">{db_pwd} --hex-blob -R -E --single-transaction -B KaTeX parse error: Expected 'EOF', got '&' at position 23: …e}</span>|gzip &̲gt; /backup_pat…{db_name}_${date_now}.sql.gz

end=date +%s

dif=$[ end - start ]

echo "备份时间: " d a t e n o w < / s p a n > < s p a n c l a s s = " h l j s − s t r i n g " > " 备 份 的 数 据 库 名 : " < / s p a n > < s p a n c l a s s = " h l j s − v a r i a b l e " > {date_now}</span> <span class="hljs-string">" 备份的数据库名: "</span> <span class="hljs-variable"> datenow</span><spanclass="hljsstring">":"</span><spanclass="hljsvariable">{db_name} " ,耗时: " ${dif} “s” >> /xx/xxx/backup_db_info.txt

保存shell脚本增加x可执行权限后即可。

改进点:

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值