- atd是一种基于时间的任务调度器,可以在指定时间执行一次性任务。atd启动时会读取/etc/at.allow和/etc/at.deny两个文件,来决定哪些用户有权限使用at命令提交任务。
- crond是一种周期性任务调度器,可以按照指定的时间间隔执行重复性任务。crond启动时会读取/etc/cron.allow和/etc/cron.deny两个文件,来决定哪些用户有权限使用crontab命令管理定时任务。
- atd是用于一次性、不需要重复执行的任务,而crond则更适合周期性执行的任务。
- atd是基于时间点执行任务,需要在命令中指定具体时间,而crond则是基于时间间隔执行任务,可以在crontab配置文件中设置任务的执行间隔。
- atd执行的任务仅在所在的会话中有效,而crond执行的任务则在整个系统中有效。
- 指定在2023/08/26 09:00将时间写入testmail.txt文件中,可以使用如下的命令:
echo `date -d "2023-08-26 09:00:00" +%Y-%m-%d\ %H:%M:%S` > testmail.txt
该命令将指定的时间转换为指定的日期格式,并将结果输出到testmail.txt文件中。
- 指定在每天凌晨4:00将该时间点之前的系统日志信息备份到指定目录下(/var/log/messages),备份后日志文件名显示格式为logfileYY-MM-DD HH-MM,可以使用如下的命令:
使用crontab定时执行任务
在文件的最后一行,添加以下命令:0 9 26 8 * echo date
> /path/to/testmail.txt
0 4 * * * tar -zcvf /backup/logs/logfile$(date +\%Y-\%m-\%d\ %H-\%M).tar.gz --newer-mtime "$(date +\%Y-\%m-\%d\ 00:00:00)" /var/log/messages
该命令使用crontab定时任务,每天凌晨4:00执行。使用tar命令将/var/log/messages目录中在指定时间点之前修改的文件打包备份,并将备份文件保存到/backup/logs目录下,备份文件名显示格式为logfileYY-MM-DD HH-MM。其中,--newer-mtime
选项用于指定备份的起始时间,即只备份在该时间之后修改的文件。