./validFile.sh? /a.conf? /a.hash
其中第一个参数为要监测的文件,第二个参数为md5或者其他算法生产的文件hash
#!/bin/bash
# 检查是否提供了足够的参数
if [ "$#" -ne 2 ]; then
? ? echo "Usage: $0 <file_path> <hash_file>"
? ? exit 1
fi
# 通过位置参数获取文件路径和哈希文件路径
file_path="$1"
hash_file="$2"
# 如果哈希文件不存在,创建一个新的哈希文件
if [ ! -e "$hash_file" ]; then
? ? echo "Creating a new hash file..."
? ? md5sum "$file_path" > "$hash_file"
fi
# 计算当前文件的哈希值
current_hash=$(md5sum "$file_path" | awk '{print $1}')
# 从哈希文件中读取之前保存的哈希值
previous_hash=$(cat "$hash_file" | awk '{print $1}')
# 比较当前哈希值和之前的哈希值
if [ "$current_hash" == "$previous_hash" ]; then
? ? echo "File has not changed."
else
? ? echo "File has changed!"
? ? # 在这里可以添加其他需要执行的操作
? ? # 比如拷贝文件、发送通知等
? ? # ...
fi