Linux计划任务「建议收藏」

Linux计划任务「建议收藏」计划任务的安排方式分两种:一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务at和crontab这

大家好,又见面了,我是你们的朋友全栈君。

计划任务的安排方式分两种:

一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情

一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务

at和crontab这两个命令:

at:它是一个可以处理仅执行一次就结束的指令

crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去。

 

at一次性计划任务使用 

at语法格式:at 时间

  1. 下载at程序

# yum install at -y

  1. 启动atd服务

# systemctl restart atd

# ps aux | grep atd

root 1166 0.0 0.1 25904 944 ? Ss 17:52 0:00 /usr/sbin/at -f root 1168 0.0 0.1 112704 956 pts/0 S+ 17:52 0:00 grep –color=auto atd

  3.设置at计划任务

 [root@localhost ~]# at 15:20
at> touch /home/he/tttt.txt
at> <EOT>                  #按ctrl d 保存
job 3 at Mon May 13 15:20:00 2019
[root@localhost ~]# atq           #查看计划任务
3 Mon May 13 15:20:00 2019 a root

[root@localhost ~]# ls /home/he
b  e1.txt  e.txt  [-p]  ss.txt  text  tttt.txt  yunwei  yw.txt

已经在计划时间执行了计划任务。

  4、删除计划任务

[root@localhost ~]# at 16:11
at> touch /home/he/ttt.txt
at> <EOT>
job 2 at Mon May 13 16:11:00 2019
[root@localhost ~]# atq
2 Mon May 13 16:11:00 2019 a root            #获取任务编号。
[root@localhost ~]# atrm 2
[root@localhost ~]# atq

[root@localhost ~]#

现在你会发现已经没有这个任务编号了。

  5.at计划任务的特殊写法

[root@ken ~]# at 20:00 2018-10-1 在某天

[root@ken ~]# at now +10min 在 10分钟后执行

[root@ken ~]# at 17:00 tomorrow 明天下午5点执行

[root@ken ~]# at 6:00 pm +3 days 在3天以后的下午6点执行

 

crontab定时任务的使用

语法:#crontab -u  -e

常用选项:

-l:list,列出指定用户的计划任务列表

-e:edit,编辑指定用户的计划任务列表

-u:user,指定的用户名,如果不指定,则表示当前用户

-r:remove,删除指定用户的计划任务列表

查看进程是否启动:

[root@localhost ~]# ps aux|grep crond
root      1020  0.0  0.1 126220  1220 ?        Ss   15:01   0:00 /usr/sbin/crond -n
root      5601  0.0  0.0 112664   972 pts/0    S+   15:30   0:00 grep –color=auto crond

查看计划任务:

[root@localhost ~]# crontab -l
no crontab for root

编写计划任务:

计划任务的规则语法格式,以行为单位,一行为一个计划:

分 时 日 月 周 需要执行的命令

执行的命令建议写成绝对路径的格式!

取值范围(常识):

分:0~59

时:0~23

日:1~31

月:1~12

周:0~7,0和7表示星期天

四个符号:

*:表示取值范围中的每一个数字

-:做连续区间表达式的,要想表示1~7,则可以写成:1-7

/:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10

,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6

[root@localhost ~]# crontab -e

输入上面的命令编辑定时任务,相当于打开了一个vim编辑器。

问题1:每月1、10、22日的4:45重启network服务

45  4  1,10,22  *  *  systemctl restart network (每月,周没有制定)

问题2:每周六、周日的1:10重启network服务

10  1  *  *  6,7  systemctl restart network   (日、月没有指定)

问题3:每天18:00至23:00之间每隔30分钟重启network服务

*/30  18-23  *  *  *  systemctl restart network  ( 日 月 周 没有指定)

问题4:每隔两天的上午8点到11点的第3和第15分钟执行一次重启

3,15  8-11  */2  *  *  reboot   (月和周没有指定)

如果要删除命令:

[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root

案例:真实测试案例,每1分钟往root家目录中的ken.txt中输一个123,为了看到效果使用追加输出

[root@ken ~]# crontab -e #编写计划任务

* * * * * echo “123” >> /root/ken.txt

[root@ken ~]# tail -f ken.txt #查看计划任务执行结果 123 123

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154394.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springcloud用feign调用非eruka注册接口报错「建议收藏」

    springcloud用feign调用非eruka注册接口报错「建议收藏」1.查了一大圈,后来发现把get请求改为post就好了,原来报4042.之所以这么耗时没有定位到问题,是因为确定不了报什么错,其实feign执行日志里面有报404.但是我以为那不是报错,而且他的报错跟正常报错不一样,没有第几行第几行throw异常那种,导致我以为那不是实际的异常,后来是直接debug源码,断点打到底层实际发送http请求的地方,发现返回信息也是404,才知道原来404了!!3….

    2022年8月21日
    7
  • pycharm配置opencv-Python_pycharm环境安装

    pycharm配置opencv-Python_pycharm环境安装版本:opencv3.61、将D:\opencv3\opencv\build\python\2.7\x64中cv2.pyd文件放到Python\Python36\Lib\site-packages下2、在pycharm中installcv2模块如果出现installerror的情况可以installopencv-python代替上述操作都可以在setting中完成:

    2022年8月28日
    4
  • Java中遍历Set集合的三种方法「建议收藏」

    Java中遍历Set集合的三种方法「建议收藏」1.迭代遍历:Setset=newHashSet();Iteratorit=set.iterator();while(it.hasNext()){Stringstr=it.next();System.out.println(str);}2.for循环遍历:for(Stringstr:set){System.out.println(str);}…

    2022年6月9日
    130
  • pycharm不小心删除文件怎么恢复_python恢复数据

    pycharm不小心删除文件怎么恢复_python恢复数据步骤1、点击被删除文件的所属上级目录右键;2、弹出的右键菜单点击localhistory,showhistory3、打开本地历史界面后,点击误删除文件;4、在右侧区域,选中文件,点击右键;5、在右键菜单中点击revertselection即可恢复;…

    2022年8月29日
    4
  • 图解使用Navicat for MySQL创建存储过程

    图解使用Navicat for MySQL创建存储过程

    2021年7月13日
    126
  • 项目开发过程中什么是开发环境、测试环境、生产环境、UAT环境、仿真环境?「建议收藏」

    项目开发过程中什么是开发环境、测试环境、生产环境、UAT环境、仿真环境?「建议收藏」项目开发过程中什么是开发环境、测试环境、生产环境、UAT环境、仿真环境?最近在公司项目开发过程中总用到测试环境,生产环境和UAT环境等,然而我对环境什么的并不是很理解它的意思,一直处于开发阶段,出于好奇,本人搜集了自己所了解的一些知识分享给各位,如果有不齐全的地方,请在评论下方留言!一、开发环境:开发环境是程序猿们专门用于开发的服务器,配置…

    2022年9月29日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号