linux的crontab定时配置全过程

首先呢,我们知道crontab是在linux中用于设定在某些时间可以自动执行某些命令的功能。

在linux中使用crontab -e 可以直接到达编辑定时任务的界面。像编辑文本一样。编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件。

我们先来看看标准的一条crontab配置是什么样的。

0 0 * * * /home/workspace/test/drop_cache.sh

而里面的语法是这样的:

  分钟     小时   天     月       天每星期       命令
 每个字段代表的含义如下:
 Minute             每个小时的第几分钟执行该任务
 Hour               每天的第几个小时执行该任务
 Day                 每月的第几天执行该任务
 Month             每年的第几个月执行该任务
 DayOfWeek     每周的第几天执行该任务

 Command       指定要执行的程序

所以上面的这个命令的意思就是在每天的零点零分的时候执行这个drop_cache.sh脚本。

我们再给一些例子

1 1,2 * * * reboot    其中的1,2代表每天的1点和2点的第一分钟的时候执行reboot命令,中间的逗号表示不同的时间点

1 1-3 * * * reboot    其中的1-3表示每天的1点到3点的第一分钟的时候执行reboot命令。“-”可以表示一个时间的范围

*/1 * * * * reboot     这里的*/1表示每隔一分钟就执行reboot命令了

那大概搞明白了以后,就可以开始了,我要做的是把要执行的sql语句写进脚本文件里面。因为我使用的是postgresql的数据库所以在这里的示例就是关于postgresql的了。

export PGPASSWORD="123456"
echo $PGPASSWORD

psql -U postgres -d databasename <<_EOT
update t_sys_name set name=1 where id=1;
_EOT

这里的databasename就是你的数据库的名称,上面的password也就是密码了。然后写好以后呢。我们保存为update.sh。放在某个目录下,然后crontab -e 编辑配置文件,加上:

*/5 * * * * /home/workspace/test/update.sh

然后保存退出。这个的意思就是每隔5分钟就执行一次这个update.sh脚本了。

crontab会自动重新加载配置。所以不需要重启,但是如果你想马上生效,也可以重启它,这里附上命令。

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

但是后面我还是发现没生效。结果是因为我没有对这个脚本文件进行权限的分配。

chomd 755 /home/workspace/test/update.sh

给了权限后,脚本就可以定时执行了。这里就是今天crontab的学习过程。希望对你有帮助。有问题欢迎留言!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

linux的crontab定时配置全过程