![如何实现配置文件过期时间?](https://linux22.com/image/86442/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%BF%87%E6%9C%9F%E6%97%B6%E9%97%B4%EF%BC%9F.png)
我有一个 Debian 服务器,它使用多个配置文件(与 apache2 类似的方式)运行一个服务,我需要为其添加到期日期。具有到期日期的配置文件以包含该日期的注释开头:
#dd.mm.yyyy
问题是并非所有文件都需要有到期日期。这些没有这个评论。
我需要编写一个由 cron 定期运行的 bash 脚本,该脚本将解析每个配置文件中的第一行,如果它过期,它将在此文件中执行一个操作(例如移动到另一个文件夹),然后重新加载或重新启动有问题的服务。没有过期日期注释的文件必须被忽略(不需要对这些文件执行任何操作)。
如何可靠地验证文件是否过期?
答案1
有趣的问题。
下面的代码是这样写的松散地来解决这个问题。
松散地,因为以下代码假设文件中包含“空间”。还假设每个 .conf 脚本的第一行的时间戳为“#YYYYMMDD”
请随意根据需要修改它。
#!/bin/bash
for i in `find /etc -name *.conf`
do
Current_date=$(date +"%Y%m%d")
date_to_compare=$(head -n1 $i | sed 's/^#//g')
if [ $Current_date -ge $date_to_compare ]; then
echo "Move the file to new directory"
echo "Start the relevant service"
fi
done