电脑文件管理器
之前给大家整理了一批关于文件批量操作的效率管理工具,如文件重命名、文件搜索与启动、文档内搜索以及文件处理插件工具箱等。本篇则更侧重文件管理和操作上。一、文件管理01 Total CommanderWi...
2024.09.20不同于 cron,anacron 是Linux系统中的一个普通的程序,它是由cron或者systemd驱动的,它的最小运行周期为天。anacron 的工作方式与cron不同,它假定计算机不是24小时运行的。比如我们需要在凌晨 3 点 执行数据库备份,但是此时我们已经关机睡觉了。然而如果备份任务是由anacron驱动的,那么我们可以放心,因为第二天打开计算机时,备份脚本将会执行。
cron 和 anacron 的主要区别如下,可以看出 Anacron 并不是取代crontab,而是对crontab的一种补充。
cron
anacron
进程特点
系统服务
普通程序
适合对象
适合7x24小时运行的服务器
适合非7x24小时运行的服务器
最小运行周期
分钟
天
关机开机时
错过了就错过了
如果错过了,开机后补充运行
权限
普通用户和 root 用户都可以使用
只有 root 用户可以使用
这张来自(https://docs.rockylinux.org/zh/guides/automation/anacron/)的示意图形象的描述了它们之间的关系:
不过这张示意图应该存在几个个错误:(1)cron.daily、cron.monthly和cron.weekly目录下的脚本是由anacron启动的;(2)anacron是由cron服务配置文件 /etc/cron.d/0hourly 中的任务/etc/cron.hourly 启动的,这些在下文中都有说明。
cron 和 anacron
配置文件首先看看anacron相关的配置文件,注意cronie-anacron提供了anacron工具。
# rpm -ql cronie-anacron/etc/anacrontab/etc/cron.hourly/0anacron/var/spool/anacron/var/spool/anacron/cron.daily/var/spool/anacron/cron.monthly/var/spool/anacron/cron.weekly/usr/lib/.build-id/usr/lib/.build-id/0e/usr/lib/.build-id/0e/6b094fa55505597cb69dc5a6b7f5f30b04d40f/usr/sbin/anacron/usr/share/man/man5/anacrontab.5.gz/usr/share/man/man8/anacron.8.gz/etc/anacrontab 配置文件列出了需要由anacron调度执行的任务。
# cat /etc/anacrontab# /etc/anacrontab: configuration file for anacron# See anacron(8) and anacrontab(5) for details.SHELL=/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# the maximal random delay added to the base delay of the jobsRANDOM_DELAY=45# the jobs will be started during the following hours onlySTART_HOURS_RANGE=3-22#period in daysdelay in minutesjob-identifiercommand15cron.dailynice run-parts /etc/cron.daily725cron.weekly nice run-parts /etc/cron.weekly@monthly 45 cron.monthlynice run-parts /etc/cron.monthly首先说明一下其中两个参数的含义:
参数
含义
RANDOM_DELAY
在任务设置的延时的基础上增加的最大的随机延迟
START_HOURS_RANGE
任务启动时间范围 3:00~22:00
我们可以使用以下格式添加任务
period in daysdelay in minutesjob-identifiercommandperiod - 这是任务执行的频率,以天为单位,或者以@daily, @weekly, 或@monthly表示每天、每周或每月一次。你也可以使用数字。1-每天,7-每周,30-每月,N-天数。delay - 这是执行任务前要等待的分钟数。job-id - 任务唯一标识符,在 /var/spool/anacron 目录下会为每个任务创建一个以这个唯一标识符命名的文件,文件的内容是这个任务最后一次执行的日期,例如:# cat /var/spool/anacron/cron.daily20221212# cat /var/spool/anacron/cron.weekly20221212# cat /var/spool/anacron/cron.monthly20221128anacron 就是靠这个日期来判断是否应该运行某个任务,下面来看看详细情况:
anacron 运行时首先检查这个任务是否在 period字段 中指定的期限内运行过。如果没有,那么在等待 delay 字段中指定的分钟数后,它将执行命令字段中指定的命令。任务运行完成后,它将在/var/spool/anacron/job-identifier 时间戳文件中记录下日期。谁启动了anacron?还有一个问题,谁启动了anacron?答案是cron服务。
# cat /etc/cron.d/0hourly# Run the hourly jobsSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root01 * * * * root run-parts /etc/cron.hourlycron 服务每小时第1分钟都会运行/etc/cron.hourly目录中的脚本,而/etc/cron.hourly/0anacron 脚本启动了anacon程序,见/etc/cron.hourly/0anacron文件的最后一行。
# cat /etc/cron.hourly/0anacron#!/bin/sh# Check whether 0anacron was run today alreadyif test -r /var/spool/anacron/cron.daily; thenday=`cat /var/spool/anacron/cron.daily`fiif [ `date +%Y%m%d` = "$day" ]; thenexit 0fi# Do not run jobs when on battery poweronline=1for psupply in AC ADP0 ; dosysfile="/sys/class/power_supply/$psupply/online"if [ -f $sysfile ] ; thenif [ `cat $sysfile 2>/dev/null`x = 1x ]; thenonline=1breakelseonline=0fifidoneif [ $online = 0 ]; thenexit 0fi/usr/sbin/anacron -s这也可以从crond的日志中看出来
# journalctl -u crond-- Logs begin at Sat 2022-12-10 22:32:01 EST, end at Mon 2022-12-12 09:31:01 EST. --Dec 10 23:01:01 racknerd-855048 CROND[603441]: (root) CMD (run-parts /etc/cron.hourly)anacron命令我们也可以直接运行 anacron 命令,通常使用的选项包括:
选项
说明
-f
执行所有作业,忽略时间戳
-u
将时间戳更新到当前时间,而不执行任何操作
-T
测试配置文件/etc/anacrontab 的有效性
之前给大家整理了一批关于文件批量操作的效率管理工具,如文件重命名、文件搜索与启动、文档内搜索以及文件处理插件工具箱等。本篇则更侧重文件管理和操作上。一、文件管理01 Total CommanderWi...
2024.09.20怎么打开任务管理器?当我们的电脑同时打开很多任务时,电脑有可能会变卡,,而且我们操作的时候也不方便,有什么办法可以快速关上一些不是很必要的任务后台吗?当然可以,我们可以直接打开任务管理器,快速结束后台...
2024.09.20任务管理器是查看资源占用情况以及管理后台进程的地方,有时候我们能够通过任务管理器去快速对程序进行相关设置,而快速打开任务管理器也能提高我们的效率,这里也和大家分享一下如何快速打开电脑任务管理器吧。更多...
2024.09.20任务管理器是一个很棒的工具,可以帮助用户管理在Windows 10电脑上运行的应用程序、进程和服务。任务管理器功能很多,查看系统状态、管理启动项、监测GPU行为……,几乎日常工作中所需的所有功能都能用...
2024.09.20任务管理器是查看资源占用情况以及管理后台进程的地方,有时候我们能够通过任务管理器去快速对程序进行相关设置,而快速打开任务管理器也能提高我们的效率,这里也和大家分享一下如何快速打开电脑任务管理器吧。更多...
2024.09.19