一起来学linux:例行性任务之at和crontab
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一起来学linux:例行性任务之at和crontab,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3215字,纯文字阅读大概需要5分钟。
内容图文
![一起来学linux:例行性任务之at和crontab](/upload/InfoBanner/zyjiaocheng/1178/016560cf115d4e6291b8bd73f34fd62d.jpg)
对于我们日常生活来说,有很多例行需要进行的工作,比如每天早上起床一杯水,例如家人的生日,每天的起床时间等。这性例行的工作有可能被遗忘,但是如果我们用计算机来进行提醒的话,则方便很多。这里就要介绍到Linux 下的例行工作命令:at和crontab.
( 一)首先来介绍at:
在有些Linux系统上at并没有启动。如果要启动需要执行如下的命令:
/etc/init.d/atd restart
正在停止 atd: [确定]
正在激活atd: [确定]
再设置一下开机就启动这个服务,免得每次重新启动都要再来一次:
chkconfig atd on
那么是否是所有的用户都能执行这个命令呢? 事实上at命令是受/etc/at.allow 和/etc/at.deny两个文件的约束,at的工作情况是这样的:
1 先寻找/etc/at.allow文件,写在这个文件里的用户才能执行at
2 如果没有etc/at.allow,那么就寻找/etc/at.deny这个文件。写在/etc/at.deny的用户则不能使用at
3 如果两个文件都不存在,那么只有root用户可以使用at这个命令
由于执行的命令不会显示在终端上,因此可以将结果输出到文本文件中
root@zhf-linux:/home/zhf/zhf# at now + 1 minutes
warning: commands will be executed using /bin/sh
at> sh /home/zhf/zhf/shell_prj/test1.sh > /home/zhf/zhf/test1.txt
at> <EOT>
job 17 at Mon Sep 25 09:19:00 2017
root@zhf-linux:/home/zhf/zhf# cat test1.txt
The scritp name is /home/zhf/zhf/shell_prj/test1.sh
The total number of parameter is 0
The first parameter is
The first parameter is
查询有多少个at任务,要删除某一个任务可以使用atrm 工作号码来删除
root@zhf-linux:/home/zhf/zhf# atq
4 Thu Sep 21 22:11:00 2017 a root
root@zhf-linux:/home/zhf/zhf# atrm 4
root@zhf-linux:/home/zhf/zhf# atq
crontab :
前面的at命令只能执行一次,执行完了后功能就失效了。如果我们想一直保持这个任务周期的执行就要用到crontab命令。同样的和at命令一样,crontab的权限是在/etc/cron.allow 和/etc/cron.deny中,如果想要查看是否具备crotnab命令,查询这2个文件就可以了
当用户使用crontab命令新建工作调度后,这项工作就会被记录到/var/spool/cron里面。cron执行的每一项的工作都会被记录到/var/log/cron这个日志当中,所以想要查看你的系统中是否有木马在自动运行,也可以查询下/var/log/cron这个日志文件。但是注意,在ubuntun中,日志文件是存在与/var/log/syslog
Crontab 的主要参数如下:
-u: 只有root用户才能执行这个任务
-e :编辑crontab的工作内容
-l: 查阅crontab的工作内容
-r: 删除所有的crontab的工作内容。
crontab 的格式如下:
0 12 * * * 命令
第一个代表分钟:0-59
第二个代表小时:0-23
第三个代表日期:1-31
第四个代表月份:1-12
第5个代表周:0-7
第六个就是要执行的命令
* 代表任何时刻都接受的意思
, 逗号表示执行时段的意思,比如0 3,6 表示工作时间是3点和6点就可以
- 减号:代表一段时间内,比如0 3-6 表示工作时间是从3点到6点
/n :代表每隔多久,n设置具体的周期。*/5 * * 代表每隔5分钟
来看一个具体的例子,下面这个命令是设置每隔一分钟就执行下test1.sh这个文件
*/1 * * * * /home/zhf/zhf/shell_prj/test1.sh
可以通过crontab -l查询到这个命令
root@zhf-linux:/var/log# crontab -l
*/1 * * * * /home/zhf/zhf/shell_prj/test1.sh
查询日志中的记录,可以看到每隔一分钟都在执行。
root@zhf-linux:/var/log# cat syslog | grep ‘shell_prj‘
Sep 25 09:29:01 zhf-linux CRON[3788]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:30:01 zhf-linux CRON[3803]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:31:01 zhf-linux CRON[3813]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:32:01 zhf-linux CRON[3829]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:33:01 zhf-linux CRON[3843]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:34:01 zhf-linux CRON[3862]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:35:01 zhf-linux CRON[3872]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:36:01 zhf-linux CRON[3883]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:37:01 zhf-linux CRON[3909]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:38:01 zhf-linux CRON[3921]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:39:01 zhf-linux CRON[3943]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
Sep 25 09:40:01 zhf-linux CRON[3953]: (root) CMD (/home/zhf/zhf/shell_prj/test1.sh)
删除掉所有的任务
root@zhf-linux:/var/log# crontab -r
root@zhf-linux:/var/log# crontab -l
no crontab for root
原文:http://www.cnblogs.com/zhanghongfeng/p/7590555.html
内容总结
以上是互联网集市为您收集整理的一起来学linux:例行性任务之at和crontab全部内容,希望文章能够帮你解决一起来学linux:例行性任务之at和crontab所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。