定时任务的使用

Posted mikasa-ackerman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定时任务的使用相关的知识,希望对你有一定的参考价值。

 
看很多的大佬有时候都是通过定时任务来Getshell的,于是想接下来好好的总结一些Linux/Windows定时任务的使用,以便以后使用、复查。
 

Linux

 
Linux上的定时任务分仅仅执行一次(at)与定时执行(crontab)
 

  • at命令(仅仅执行一次命令)

     
    需要atd的支持
     
    systemctl restart atd启动atd
     
    systemctl enable atd设置开机自启
     
    at命令的执行方式
     
    将待执行的命令以文本的方式写入/var/spool/at/目录内,待atd启动时便给予执行
     
    但是at执行命令是很严格的
     
    首先会先找到/etc/at.allow/etc/at.deny这两个文件,他们的作用分别是:只有/etc/at.allow中的用户才可以使用at命令,在/etc/at.deny中的用户禁止执行at命令,默认情况是(ubuntu18.04),/etc/at.allow不存在,/etc/at.deny中的用户是:
     
    技术图片?
     
    可以看到www-data是不在可以使用at的范围的,并且还有atd的限制(若两个文件皆没有,那么默认是root才可以使用).
     
    设置计划任务
     

    • 在五分钟后关机

       

      at 10:35 2019-12-01
      at>  mkdir /root/test_at
      ctrl+d退出

      设置为创建一个目录的命令
      技术图片?
       

    • 删除定时任务

      atq列出所有的计划任务
       
      atrm pid根据编号删除
       
      感觉这个限制还是很多的...(另外batch也是基于at来执行任务的,可以用atq于atrm来管理)

  • crontab(定时执行)

     
    与at同样的,在/etc/目录下有/etc/cron.allow/etc/cron.deny
     
    /etc/cron.allow的优先级较高,两者保留一个就好
     
    以用户建立定时任务的时候,会写入/var/spool/cron/crontabs/用户里面,同时在/var/log/cron中存有日志
     
    使用语法
     
    crontab -e
    之后进行编辑(这里不再说明)
     
    crontab -l查看所有的任务
     
    crontab -r删除所有的任务
     
    利用方式大致是一样的都是写入特定文件
     
    echo "*/1 * * * * whoami" > /var/spool/cron/crontabs/root前提是具有写的权限
     
     

    Windows上的计划任务

     

  • 图形化界面

    首先在开始搜索windows 计划任务,之后按着做就行了
     

  • at命令

    at 12:00 whoami
     
    也可以指定年、月、日来进行执行
     

以上是关于定时任务的使用的主要内容,如果未能解决你的问题,请参考以下文章

63使用Timer类来实现定时任务

springboot项目使用SchedulingConfigurer实现多个定时任务

springboot项目使用SchedulingConfigurer实现多个定时任务

定时任务Timer

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题