文件监控脚本

先给脚本发了吧

先贴个效果图

完整代码如下:

 1 #!/bin/bash
 2 
 3 # 指定要监控的文件夹路径
 4 WATCH_DIR=$1
 5 
 6 # 检查参数是否为空
 7 if [ -z "$WATCH_DIR" ]; then
 8   echo "请输入要监控的文件夹路径"
 9   exit 1
10 fi
11 
12 # 备份文件
13 if [ -d "bak/$WATCH_DIR" ]; then
14   echo "文件已备份:bak/$WATCH_DIR"
15 else
16   mkdir bak
17   cp -r $WATCH_DIR bak/$WATCH_DIR
18   echo "备份文件不存在,已备份到bak/$WATCH_DIR"
19 fi
20 # 初始化文件列表
21 OLD_FILE_LIST=$(find "$WATCH_DIR")
22 
23 echo "开始监控"
24 echo "--------------------"
25 while true; do
26   # 获取最新的文件列表
27   NEW_FILE_LIST=$(find "$WATCH_DIR")
28 
29   # 检查新增文件
30   while read -r file; do
31     if ! grep -q "$file" <<< "$OLD_FILE_LIST"; then
32       echo "检测到新增文件或文件夹:"
33       echo "$file"
34       # 自动删除新增文件
35       if [ -f "$file" ]; then
36         echo "已删除新增文件: $file"
37         rm "$file"
38         echo "--------------------"
39       elif [ -d "$file" ]; then
40         echo "已删除新增文件夹: $file"
41         echo "--------------------"
42         rm -r "$file"
43       fi
44       NEW_FILE_LIST=$OLD_FILE_LIST
45     fi
46   done <<< "$NEW_FILE_LIST"
47   # 检查删除文件
48   while read -r file; do
49     if ! grep -q "$file" <<< "$NEW_FILE_LIST"; then
50       # 判断文件是否仍存在
51       if [ ! -e "$file" ]; then
52         echo "检测到被删除文件:"
53         echo "$file"
54         echo "恢复被删除文件或文件夹: $file"
55         cp -R "bak/$file" "$file"
56         echo "--------------------"
57         # 自动恢复被删除的文件
58         NEW_FILE_LIST=$OLD_FILE_LIST
59       fi
60     fi
61   done <<< "$OLD_FILE_LIST"
62 
63 
64   # 等待一段时间后再次检查
65   sleep 0.3
66 done

写了差不多三天,可能是太菜的原因

一开始用的是comm来比较,然后测试时候发现删除的如果是中间项会导致后边的错位,comm对不上,直接库库给后边全删了,改了半天没想明白咋改,后来换成了这种方法

昨天打awd时候还出事儿了,我是直接从windows给文件传上去了,结果出来一堆'\r'告诉我运行不了,我寻思半天,我这就是为了能通用才用bash写的,你这是哪国的系统咋bash基础命令都不一样?

然后捅咕半天,想起来windows下换行和linux下换行不一样

 虽说修好了,但是可能是靶场选的太难了,都没打进来,白开了个文件监控,早知道这周再写好了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值