Linux中的任务定时及延时

在工作中,我们有时候需要在一个特定的时间去运行一个任务,而那个时间我们可能不在机器旁,所以就必须有一个定时开启及关闭的命令来代替我们执行

###定时任务和延时任务###

at

at + time
at 22:33
at>touch /mnt/file{1..6}                                         ##延迟动作
at>                                                                     ##ctrl+d表示发起动作
at -l | atq                                                             ##查看当前任务
atrm | at -d                                                          ##取消指定任务

at -c                                                                   ##查看任务内容

Linux中的任务定时及延时

Linux中的任务定时及延时

Linux中的任务定时及延时

at now+1min                                                             ##现有时间点延迟一分钟
Linux中的任务定时及延时
at -f file                                                                    ##延迟执行文件中的内容
at -m #延迟命令没有输出时仍然发送邮件给执行者
at -M #延迟命令有输出时但不发送邮件给执行者

at 命令的执行权力设定

vim /etc/at.deny                                                         ##用户黑名单,在此名单中出现的用户不能执行at命令
Linux中的任务定时及延时

Linux中的任务定时及延时

vim /etc/at.allow                                                   ##用户白名单,名单默认不存在,但名单一旦出现,黑名单失效
                                                                          ##系统所有用户默认不能执行at,只有在名单中出现的用户可以使用at命令
Linux中的任务定时及延时                            
Linux中的任务定时及延时

## 之前在(at.deny)黑名单中已经加入用户vivian,用户vivian不能使用at命令,之后将其加入白名单中,白名单优先级高于黑  名单,则可以执行at命令

crontab

方式一

*(分钟)  *(小时)  *(日期)  *(月份)  *(星期)

crontab -u username -e                                                              ##编辑crontab工作内容
crontab -u username -r ##移除所有crontab工作内容
crontab -u username -l ##查询crontab工作内容

eg:*          *          *          *           *                                         ##每分钟执行一次

       */5       *          *          *           *                                         ##每五分钟执行一次

       */2    09-16   2,17   4,6        3                                        ##在四六月份的2号与17号及四六月份的周三早上9点至下午

                                                                                                  16点,每隔两分钟执行一次命令

方式二:文件方式的设定

vim /etc/cron.d/filename

eg:在四六月份的2号与17号及四六月份的周三早上9点至下午16点,每隔两分钟执行一次清空日志命令

Linux中的任务定时及延时

crontab 命令的执行权力设定

crontab的执行权力设定与“at”命令的设定一样。可以参考上文设定方式

/etc/cron.deny                                        ##用户黑名单,在此名单中出现的用户不能执行crontab命令

/etc/cron.allow                                        ##用户白名单,名单默认不存在,但名单一旦出现,黑名单失效
                                                             ##系统所有用户默认不能执行crontab,只有在名单中出现的用户可以使用

注:系统控制crontab的服务        crond.service          ##当程序开启时定时任务生效
 

###临时文件###

系统中服务在正常运行时会产生临时文件

/usr/lib/tmpfiles.d/*.conf                                                            ##系统中临时文件的配置
文件类型    文件名称    文件权限    文件所有人    文件所有组     文件存在时间
       d      /mnt/westos      777              root              root                16s

Linux中的任务定时及延时
systemd-tmpfiles –create /usr/lib/tmpfiles.d/*                          ##执行临时文件

Linux中的任务定时及延时

Linux中的任务定时及延时
systemd-tmpfiles –clean /usr/lib/tmpfiles.d/* ##清理临时文件