从入门到放弃吧 关注:8贴子:772
  • 7回复贴,共1

Linux 计划任务

只看楼主收藏回复

计划任务分为 两类:
1,一次性计划任务;在特定的时间点执行一次
2,周期性计划任务;在周期时间内反复执行
Windows中也有计划任务,比如 右击桌面计算机或者此电脑,点管理,可以看到左侧有计划任务。或者搜索任务计划,或者使用win+R运行命令 taskschd.msc打开计划任务。可以可视化创建计划任务。


IP属地:湖北1楼2024-05-14 16:20回复
    一次性计划任务使用的命令是 at
    周期性计划任务使用的命令是 crontab


    IP属地:湖北2楼2024-05-22 00:17
    回复
      一次性计划任务是atd服务提供。确保atd服务在运行
      查看atd服务是否在运行 systemctl status atd
      重启atd服务 systemctl restart atd
      设置atd服务开机自动 systemctl enable atd
      -----
      at 命令是将计划任务用文本的方式写入 /var/spool/at目录下,等atd调用执行
      有两个文件,一个是百名单机制,一个是黑名单机制,确定哪个用户是否有权限使用at命令
      白名单机制文件 /etc/at.allow
      黑名单机制文件/etc/at.deny
      ------
      使用方法
      at hh:mm YYYY-MM-DD
      举例
      at 18:00 2024-05-22
      意思是在2024年5月22日18:00执行这个任务
      上条命令回车之后会显示 at>
      就可以使用命令或者执行脚本
      比如我想执行一个重启命令或者脚本
      at>/usr/sbin/reboot
      或者
      at>/usr/bin/bash /opt/sh/reboot.sh
      at><EOT>
      回车之后,按CTRL+D保存并退出,会出现<EOT>字符,显示保存退出
      然后使用
      at -l 或者atq命令查看这个一次性计划任务
      可以使用以下命令删除一次性计划任务
      at -d 计划任务序号
      ---------
      建议使用命令为绝对路径的命令。查看哪个命令在哪个路径,使用 which 命令,可以知道此命令的绝对路径


      IP属地:湖北3楼2024-05-22 00:36
      回复
        周期性计划任务使用
        周期性计划任务使用 crontab 命令
        基于crond服务,首先检查一下crond是否正常运行,用 systemctl status crond 命令
        Active这一行显示active (running)代表正常运行
        systemctl start crond 启动
        systemctl stop crond 停止
        systemctl restart crond 重启
        开机启动 systemctl enable crond
        crontab -e 编辑周期性计划任务
        编辑内容模式
        * * * * * 用户 命令
        五个星号* 以此代表分时日月周
        没有用户账号,默认是root用户
        举例
        */1 * * * * /bin/bash /opt/sh/createTxt.sh
        上面的意思是每分钟执行一次在/opt/sh目录下的createTxt.sh脚本文件
        30 16 * * * /bin/bash /opt/sh/createTxt.sh
        上面的意思是 每天16:30执行脚本
        创建完成后用crontab -l 查看编辑完成的计划任务
        计划任务文档写在/var/spool/cron/目录中,已用户账号名命名


        IP属地:湖北4楼2024-06-06 16:05
        回复
          计划任务格式参照 /etc/crontab 配置文件,
          在/etc目录中有多个cron开头的目录,写在里面也可以执行计划任务
          使用ls cron 按两下tab键可以看到,有斜杠/的是目录


          IP属地:湖北5楼2024-06-06 16:16
          回复
            计划任务运行后会记录一个运行日志
            /var/log/cron
            可以查看日志看看是否正常运行
            -----------------
            /etc/cron.deny 此文件为黑名单文件,将某个用户账号添加进去,此用户就不能使用计划任务


            IP属地:湖北6楼2024-06-06 16:18
            回复
              crontab -l 查看计划任务
              crontab -r 删除用户所有计划任务
              crontab -u 管理其他用户计划任务
              ----------------------------


              IP属地:湖北7楼2024-06-06 16:20
              回复
                * * * * *//每分钟都执行
                0 0 * * *//每天0点执行
                30 1 * * *//每天凌晨1点30分执行
                0 * * * *//每小时执行
                0 */2 * * *//每隔两小时执行
                */30 * * * *//每隔30分钟执行
                0 1 15 * *//每月的15号凌晨1点钟执行
                0 5 1-14 * *//每月1号-14号凌晨5点钟执行
                0 6-8 */5 * *//每隔5天的上午6点-8点整执行
                0 20-23/1 * * *//每天晚上8点-11点之间,每隔1小时执行
                0 23 * * 1-3//周一到周三每天晚上11点整执行


                IP属地:湖北8楼2024-06-06 16:21
                回复