以下是一个示例的Bash脚本,用于监视多个路径,并在添加新文件时发送电子邮件通知:
#!/bin/bash
# 设置监视的路径,用空格分隔多个路径
watch_paths="/path/to/dir1 /path/to/dir2"
# 设置要发送通知的电子邮件地址
email_address="your_email@example.com"
# 存储之前的文件列表
old_files=""
# 无限循环
while true; do
# 检查每个监视路径
for path in $watch_paths; do
# 获取当前路径下的所有文件
current_files=$(ls "$path")
# 检查是否有新文件添加
new_files=$(diff <(echo "$old_files") <(echo "$current_files") | grep "> " | awk '{print $2}')
# 发送电子邮件通知
if [ -n "$new_files" ]; then
echo "New files added to $path:" > temp.txt
echo "$new_files" >> temp.txt
cat temp.txt | mail -s "New files added" "$email_address"
rm temp.txt
fi
# 更新旧文件列表
old_files="$current_files"
done
# 每隔5秒进行一次检查
sleep 5
done
请注意,此脚本使用了ls
命令来获取路径下的所有文件,并使用diff
命令来比较旧文件列表和当前文件列表以检查新文件。然后,使用mail
命令发送电子邮件通知。
在使用此脚本之前,请确保已经安装了mail
命令,否则无法发送电子邮件。
另外,请根据实际情况修改watch_paths
和email_address
变量,分别用于设置要监视的路径和接收通知的电子邮件地址。