ToB企服应用市场:ToB评测及商务社交产业平台

标题: bash监控指定目次下的文件变更并执行相应动作 [打印本页]

作者: 商道如狼道    时间: 2025-1-17 19:18
标题: bash监控指定目次下的文件变更并执行相应动作
  1. #!/bin/bash
  2. dir_to_monitor="/home/sub_dir
  3. prev_files=$(ls -A $dir_to_monitor)
  4. #echo "prev_files: $prev_files"
  5. prev_files_file=$(mktemp)
  6. ls -A $dir_to_monitor > $prev_files_file
  7. while true; do
  8.     current_files=$(ls -A $dir_to_monitor)
  9.     #echo "current_files: $current_files"
  10.     current_files_file=$(mktemp)
  11.     ls -A $dir_to_monitor > $current_files_file
  12.     added_files=$(comm -13 $prev_files_file $current_files_file)
  13.     if [ -n "$added_files" ]; then
  14.         echo "新增文件: $added_files"
  15.         find /${dir_to_monitor}/*.sh -type f -exec sed -i '/network restart/a\route -n' {} \;
  16.         find /${dir_to_monitor}/.sh -type f -exec sed -i '1i\network start' {} \;
  17.     fi
  18. #    if [ -n "$removed_files" ]; then
  19. #        echo "删除文件: $removed_files"
  20. #    fi
  21.     # 删除之前的临时文件
  22.     rm $prev_files_file
  23.     # 将当前文件列表临时文件重命名为上一轮的文件列表临时文件,用于下一轮对比
  24.     mv $current_files_file $prev_files_file
  25.     sleep 1
  26. done
复制代码
在含有特定内容的某行后添加新行
       find /${dir_to_monitor}/*.sh -type f -exec sed -i '/network restart/a\route -n' {} \;
在每个文件开头添加新行
       find /${dir_to_monitor}/*.sh -type f -exec sed -i '1i\network start' {} \;
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4