zoukankan      html  css  js  c++  java
  • 计划任务

    我们可以通过一些设置。来让电脑定时提醒我们该做什么事了。或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务。而遇到一些需要执行的事情或任务。我们也可以通过命令来告诉电脑一会临时把这个工作给做一下

    总结:在我们LINUX中,我们可以通过crontab和at这两个东西来实现这些功能的

    计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据

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

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

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

    at和crontab这两个命令:

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

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

    1.at 一次性计划任务

     at   18:55    设置1855做一次性任务

    touch   nimei     保存是 ctel+d       查询atq

      删除是atrm 1      1就是第一个任务)

    at语法格式:at 时间

    1. 下载at程序

    [root@ken ~]# yum install at -y

    2. 启动atd服务

    [root@ken ~]# systemctl restart atd

    [root@ken ~]# 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@ken ~]# at 10:00                       #如果是上午时间,后面加上am,比如9:20am

    at> touch /tmp/test1                         #输入你要执行的命令

    at> <EOT>                                    #按ctrl+d保存

    job 1 at Fri Mar  1 10:00:00 2019

    [root@ken ~]# at -l                          #查看计划任务

    1    Fri Mar  1 10:00:00 2019 a root

    [root@ken ~]# atq                            #查看计划任务

    1    Fri Mar  1 10:00:00 2019 a root

    4. 删除计划任务atrm

    [root@ken ~]# at -l                           #第一步查看计划任务,获取前面编号

    1    Fri Mar  1 10:00:00 2019 a root

    [root@ken ~]# atrm 1                          #删除计划任务加上编号

    [root@ken ~]# at -l                           #再次查看计划任务发现已经删除

    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点执行

    2.crontabs  定时任务

    crontab定时任务的使用(工作必用)

     接收一台服务器必须要看一下计划任务

    编写任务一定要写绝对路径!!!

    语法:#crontab -u  -e

    常用选项:

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

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

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

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

    1. 查看计划任务

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

    2. 编写计划任务

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

    设置的格式:   需要执行的命令的绝对路径  需要执行的命令

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

    例如:如果想要每天的0点0分执行reboot指令,则可以写成

    0 0 * * * reboot

    取值范围(常识):

    分:0~59

    时:0~23

    日:1~31

    月:1~12

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

    四个符号:

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

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

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

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

    问题1:每月11022日的4:45重启network服务

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

      

    先进入  编辑器: crontab -e                

                          * * * * *

                                 

                  45 4 1,10,22 * *  /usr/bin/systemctl restarl network  (命令是重启网卡)

                   查看systemctl绝对路径:which systemctl               

     复制粘贴:[root@king ~]# which systemctl

                                            /usr/bin/systemctl

      删除任务:  crontab -r         查看任务是:crontab  -l

    问题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   (月和周没有指定)

    ken用户设置定时任务

    crontab -e     root 编写任务

    find / -name "root"              查看root进入路径

    cd /var/spool/cron            进入到cron根目录 (定时任务的根目录)

    cat root                            查看 root 的定时任务

    45 4 1,10,22 * *  /usr/bin/systemctl restarl network

     useradd ken                     创建ken用户

     crontab -u ken -e              进入ken用户的定时设置编辑器

     cat ken                            查看ken的定时任务

    监控一个

    touch /tmp/test         tmp/ 创建一个test文件夹

    ls -ld /tmp/test           查看一个文件夹是否存在

    which echo               查看一下 echo的绝对路径

    crontab  -e                 打开文件编辑

    * * * * * /usr/bin/echo "123">> /tmp/test         每分钟写入一个123test文件夹

    tail -f /tmp/test            监控 test  文件

    1-20 * * * * /usr/bin/echo "123">> /tmp/test          1-20分钟写一次123test

    创建以时间命名的文件:touch  `date "+%F"`

    每天晚上1点钟,执行一次备份,备份ken下的文件,文件名要以文件名为年月日

    crontab  -e                 打开文件编辑

     

    0 1 * * * /usr/bin/tar czf `touch $(date "+\%F")`   /ken        

    croutab 里面%有特殊含义 必须加 进行转译

    0 秒一定要注意加 ,不加的话就成了1点钟每分钟进行备份了(不加每分钟会备份60次的)

  • 相关阅读:
    异或交换真的比开一个tmp快吗?
    淘宝前端团队的干货《论版本号的正确打开方式》
    箭头函数
    js对象引用问题
    json+underscore+Node 小例子
    fs.stat()
    Express static静态路由
    剑指offer(二) 替换空格
    Node实现简单的表单+图片上传+路由
    剑指offer(一) 二维数组的查找
  • 原文地址:https://www.cnblogs.com/leeeel/p/10815756.html
Copyright © 2011-2022 走看看