用shell脚本判断文件是不是在变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用shell脚本判断文件是不是在变化相关的知识,希望对你有一定的参考价值。

linux中有一个父文件夹,
1. 遍历它的一级子目录,记录每个子文件夹的大小;
2. sleep 20
3. 再次遍历它的一级子目录,记录每个子文件夹的大小;
4. 比较两次遍历,在大小在变化的文件夹内生成一个子文件,记录当前时间。

参考技术A 你可以对文件进行md5校验,校验结果不一致的就执行4.追问

能麻烦您写一下具体代码看看吗?shell还不太会用 好多功能不知道什么关键词( •̥́ ˍ •̀ू )

参考技术B 1、Tripwire是一个免费的开源入侵检测系统(IDS)。 它是用于监视和警告系统上文件更改的安全工具。
yum -y install tripwire
2、stat命令主要用于显示文件或文件系统的详细信息
OLD_SIZE=`stat -c %s filename`
sleep 20
NEW_SIZE=`stat -c %s filename`
if [[ "$OLD_SIZE" != "$NEW_SIZE" ]]
then :
echo "changed"
else :
echo "no change"
fi
3、md5sum计算文件列表的hash值并保存成文件,和20秒后生成的文件比较
find . -type f -exec md5sum \; > a.txt
sleep 20
find . -type f -exec md5sum \; > b.txt
diff a.txt b.txt本回答被提问者采纳

shell 脚本 if 判断多个条件

参考技术A 1.如果a>b且a<c

2.如果a>b或a<c

4."||"和"&&"在SHELL里可以用吗?也就是第一个写成if [ a>b && a<c ]也可以吗?

可用, 但是要两个独立的 [ ] , [[ ]] 或 (( )) 看 1

5 -ne 比较数字 (numberic) ; != 比较字符 (string), 但后者拿来
比较数字也可,只是不是标准用法
-lt 是等同 < , 但 < 只能在 shell 的数值操作符 (( )) 或
者 逻缉操作符 [[ ]] 才可使用, -lt , -eq , -gt , -ge
-le , 这些是 test , 就是 [ ] 这个内建命令使用的条件操
作符, 数字用, = , != 字符用, == 这个该是 [[ ]] 用的,
可用来比对正规表示式, 但用在 [ ] 也可,只是不太正统用法

以上是关于用shell脚本判断文件是不是在变化的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本如何判断目录下的多个文件夹是不是为空

要在一台主机上执行shell脚本判断另一台上的某个文件是不是存在,这个shell语句该怎么写?

shell脚本检查进程是不是存在不存在发送邮件

Shell脚本判断文件是不是存在

求Bash Shell脚本,判定文件是不是存在。

shell 脚本 if 判断多个条件