定时任务的使用
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
也可以指定年、月、日来进行执行
以上是关于定时任务的使用的主要内容,如果未能解决你的问题,请参考以下文章
springboot项目使用SchedulingConfigurer实现多个定时任务
springboot项目使用SchedulingConfigurer实现多个定时任务