一、延时任务
at 命令,即用即消
如 at 11:30
rm -rf /mnt/* ctrl+d运行 (过一秒即可执行)
-v 使用较明显的时间格式,列出at调度中的任务列表
-l 可列出目前系统上面的所有该用户的at调度
-c 可以列出后面接的该项工作的实际命令内容
非交互即执行脚本
# vim at_job.sh
#!/bin/bash
at now+1min <<EOF
rm -fr /mnt/file{1..10}
date
例如:
二、定时任务
可永久存在
主要用服务crontab,只有root用户可用
定时任务信息存放在系统中/var/spool/cron目录中,定时任务的日志文件被存放到/var/log/cron中
-u:用来设定某个用户的crontab服务此参数一般有root用户来运行
-e:编辑某个用户的crontab文件内容
-l:显示某个用户的crontab文件内容
-r:从/var/spool/cron目录中删除某个用户的crontab文件
-i:在删除用户的crontab文件时给确认提示
发起方式:如下
crontab –u 用户(root) –e
* * * * * rm -fr /mnt/*
五个星号分别代表分钟,小时,天,月,周
全星号代表每分钟
11 ,6 * * * 则代表一点十分和六点零一分
* 1-6 * * * 代表每天的一点到六点
*/5 * * * 每隔五分钟
* /2 * 4 2-5 5 代表2345月的整点每两分钟,2345的每个周五整天每两分钟
例:
三、安全优化
系统中默认只存在黑名单/etc/at.deny,写入此文件中的用户会被禁止使用at任务
在系统中可以手动建立白名单/etc/at.allow,当此文件出现黑名单不会被检测
白名单出现只有root用户和白名单用户可以执行at任务 如果系统中没有黑白名单那么只有root用户可以执行任务
安全防护,
发起方式:
crontab -e
echo 用户 >/etc/cron.allow
例:
黑名单
白名单
四、系统级别的周期任务
系统目录:/etc/cron.d
etc/cron.daily 每天周期任务
/etc/cron.hourly 每小时周期任务
/etc/cron.monthly 每月周期任务
/etc/cron.weekly 每周周期任务
设置方式:
cd /etc/cron.d
vim clear_job
cat clear_job
* * * * * root rm -fr /job/*
vim /etc/cron.userset/clearmnt.sh
rm -rf /mnt/*
mkdir /etc/cron.userset
最后赋予超级权限
chmod +x /etc/cron.userset/clearmnt.sh
例: