cat /etc/redhat-release看到操作系统的版本是CentOS Linux release 7.6.1810 (Core),uname -r可以看到内核版本是3.10.0-957.21.3.el7.x86_64

参考的博客有:
1.《Linux anacron命令用法详解》
2.《详解anacron 命令》
3.《Anacron的用法》
4.《shell脚本实现文件锁功能》
5.《 shell案例解决之flock示例》
anacron
anacron的设计目标是处理可能不会持续运行的系统上的任务,一些在/etc/crontab里的定时任务因为一些情况(比如关机)而错过定时执行的时刻,那么这些任务就有可能以后再执行,而为了避免因这些特殊情况引发的定时任务执行次数减少,可以将这个任务放在/etc/anacrontab里。在开机启动时候能够自动延时执行,或者使用anacron -s手动触发。
/etc/anacrontab有anacron的配置文件,格式如下:
period delay job-identifier command
period:任务执行的时间间隔,可以是 daily(每日)、weekly(每周)或 monthly(每月)。
delay:任务启动前的延迟时间(以分钟为单位)。这可以防止系统刚刚启动时就执行任务。
job-identifier:任务的唯一标识符,用于确保每个任务只运行一次。
command:要执行的实际命令或脚本。
我的系统里边,/etc/anacrontab里边默认内容如下:
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
START_H0URS_RANGE:表示延时任务只能在这段时间内执行
RANDOM_DELAY:最大随机廷迟,会在0~RANDOM_DELAY之间生成一个随机值(这里使用ranDelay,这里是我自己随意起的一个名字),然后就是ranDelay+delay之后执行程序。
1 5 cron.daily nice run-parts /etc/cron.daily就表示每天在START_HOURS_RANGE(在此处是3点至22点之间),间隔开机ranDelay+5分钟之后执行程序。
/etc/cron.d/0hourly记录每小时的计划任务,可以看出里边默认有一条语句:01 * * * * root run-parts /etc/cron.hourly。这条语句就是说明了每小时第1分钟以/etc/cron.hourly中脚本执行任务。
flock
在A终端执行flock -xn "/tmp/txt.lock" -c "/shelllearn/flocktest.sh"使用/tmp/txt.lock来让/shelllearn/flocktest.sh只有一个实例

然后在B终端再次flock -xn "/tmp/txt.lock" -c "/shelllearn/flocktest.sh",发现立马就退出了,这表明锁文件还没有被释放。

此文章为8月Day 3学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。




![[java刷算法]牛客—剑指offer链表复习、手写简易正则匹配](https://img-blog.csdnimg.cn/12cd6dbd3e164193b9ed4f0c3a429473.png)



![[C++] 类与对象(中)类中六个默认成员函数(2)-- 运算符重载 -- 取地址及const取地址操作符重载](https://img-blog.csdnimg.cn/img_convert/d797fd7a8bef89f4a8799114131aa80c.png)










