举例:

ip.txt内容如下:

10.1.1.11 root 123
10.1.1.22 root 111
10.1.1.33 root 123456
10.1.1.44 root 54321 写法1: cat ip.txt | while read ip user pass
do
echo "$ip--$user--$pass"
done

 

 我的常用

inotifywait -mr --timefmt "%Y/%m/%d %H:%M:%S" --exclude "(.swp|.inc|.svn|.rar|.tar.gz|.gz|.log|.zip|.bak)" --format "%w %f %T"  -e create /var/www

/var/www/test/ lal.php 2020/07/26 17:07:54
/var/www/test/ test1.php 2020/07/26 17:08:32

inotifywait -mrq --timefmt "%Y/%m/%d %H:%M:%S" --exclude "(.swp|.inc|.svn|.rar|.tar.gz|.gz|.log|.zip|.bak)" --format "%w %f %T" -e create /var/www |while read dir file time
do
echo "$dir ---- $file ----$time"
done;


/var/www/test/ ---- 99111.php ----2020/07/26 17:11:01
/var/www/test/ ---- lucky.qphp ----2020/07/26 17:11:17

# 新建的文件移动到一个目录(防止未知的后门程序)

inotifywait -mrq --timefmt "%Y/%m/%d %H:%M:%S" --exclude "(.swp|.inc|.svn|.rar|.tar.gz|.gz|.log|.zip|.bak|^/www/wwwroot/project/vendor/*|^/www/wwwroot/project/storage/*)" --format "%w %f %T" -e create /www/wwwroot/project-dir |while read dir file time
do
echo "$dir---$file---$time" >> /home/hack/create.log
mv $dir$file /home/hack
done;

(这里不能加 -o ,使用 screen 后台程序)

 

# 后台运行监控文件变化
inotifywait -mrqd --timefmt "%Y/%m/%d %H:%M:%S" --exclude "(.swp|.inc|.svn|.rar|.tar.gz|.gz|.log|.zip|.bak)" --format "%e %w %f %T" -e create,modify,delete,attrib -o '/home/hack.log' /var/www


#!/bin/bash

DESTHOST=172.16.100.6
DESTHOSTDIR=/www/htdocs/
SRCDIR=/www/htdocs/ inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' \
-e create,delete,modify,attrib $SRCDIR | while read DATE TIME DIR FILE; do
$FILECHANGE=${DIR}${FILE} rsync -avze 'ssh' $SRCDIR root@${DESTHOST}:${DESTHOSTDIR} &>/dev/null && \
echo "At ${TIME} on ${DATE}, file $FILECHANGE was backed up via rsync" >> /var/log/filesync.log done

* inotifywait后面的--format '%e %w%f %T',决定了:while read能取到什么值。也就是主程序体中,能用到什么变量。

* 常见组合inotifywait -rmq

% H 小时(00..23)
% I 小时(01..12)
% k 小时(0..23)
% l 小时(1..12)
% M 分(00..59)
% p 显示出AM或PM
% r 时间(hh:mm:ss AM或PM),12小时
% s 从1970年1月1日00:00:00到目前经历的秒数
% S 秒(00..59)
% T 时间(24小时制)(hh:mm:ss)
% X 显示时间的格式(%H:%M:%S)
% Z 时区 日期域
% a 星期几的简称( Sun..Sat)
% A 星期几的全称( Sunday..Saturday)
% b 月的简称(Jan..Dec)
% B 月的全称(January..December)
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
% d 一个月的第几天(01..31)
% D 日期(mm/dd/yy)
% h 和%b选项相同
% j 一年的第几天(001..366)
% m 月(01..12)
% w 一个星期的第几天(0代表星期天)
% W 一年的第几个星期(00..53,星期一为第一天)
% x 显示日期的格式(mm/dd/yy)
% y 年的最后两个数字( 1999则是99)
% Y 年(例如:1970,1996等)

其他:

安装:https://github.com/inotify-tools/inotify-tools/wiki#getting

https://www.cnblogs.com/caidingyu/p/11708851.html

https://blog.csdn.net/ab601026460/article/details/97380081

https://blog.csdn.net/huey2672/article/details/41895341

https://www.cnblogs.com/luoine/articles/4332380.html (rsync和notify 备份文件)

Linux文件监控工具——inotify-tools的更多相关文章

  1. linux设置rsync+inotify实时同步文件

    linux设置rsync+inotify实时同步文件   应用场景: 同步接收方:test01 接收目录:/opt/software/test/a/ 同步发起方:test02 同步目录:/opt/so ...

  2. Linux 文件操作监控inotify功能及实现原理【转】

    转自:http://blog.chinaunix.net/uid-26585427-id-5012973.html 1. inotify主要功能 它是一个内核用于通知用户空间程序文件系统变化的机制. ...

  3. MySQL实时性能监控工具doDBA tools

    doDBA tools是什么? doDBA tools是一个基于控制台的远程监控工具,它不需要在本地/远程系统上安装任何软件,它可以实时收集操作系统.MySQL.InnoDB的实时性能状态数据,并可以 ...

  4. 管理员必备的Linux系统监控工具

    管理员必备的Linux系统监控工具 #1: top - 进程活动 top提供一个当前运行系统实时动态的视图, 也就是正在运行进程.在默认情况下,显示系统 中CPU使用率最高的任务,并每5秒钟刷新一次. ...

  5. 在虚拟机的linux中利用VMware Tools实现与windows共享文件

        很多人都知道安装"VMware Tools"可以实现与windows共享,但是其实它的功能远不止此.安装了"VMware Tools"后,虚拟机的网络. ...

  6. 【转】管理员必备的Linux系统监控工具

    原文连接: 管理员必备的Linux系统监控工具 #1: top - 进程活动 top提供一个当前运行系统实时动态的视图,也就是正在运行进程.在默认情况下,显示系统中CPU使用率最高的任务,并每5秒钟刷 ...

  7. Linux系统性能监控工具介绍之-tsar

    Linux系统性能监控工具介绍之-tsar Linux系统性能监控工具介绍之-tsar 2017-03-02 20:25 175人阅读 评论(0) 收藏 举报  分类: LINUX调优(9)    目 ...

  8. Linux Performance Analysis and Tools(Linux性能分析和工具)

    首先来看一张图: 上面这张神一样的图出自国外一个Lead Performance Engineer(Brendan Gregg)的一次分享,几乎涵盖了一个系统的方方面面,任何人,如果没有完善的计算系统 ...

  9. window与linux文件传输工具

    window与linux文件传输工具 [一般用于SecureCRT ssh中使用] 法一:直接用yum安装lrzsz(推荐) yum install lrzsz -y 注意:rhel安装完系统后 直接 ...

随机推荐

  1. Linux系统及第三方应用官方文档

    通过在线文档获取帮助 http://www.github.com https://www.kernel.org/doc/html/latest/ http://httpd.apache.org htt ...

  2. CentOS8 安装

    CentOS8 1911 下载 https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso Step ...

  3. .gdbinit文件配置

    .gdbinit文件配置 #打印数组的索引下标 set print array-indexes on #每行打印一个结构体成员 set print pretty on #除了断点有关的线程会被停下来, ...

  4. APP反编译Xposed-Fdex2脱壳

    1.首先手机安装Xposed(app) 2.安装Fdex2(app) 3.打开Fdex2 4.点击要脱壳的app 5.adb pull (点击脱壳app时候弹出的来的路径) 保存本地路径 6.完结-. ...

  5. APP后台架构开发实践笔记

    1 App后台入门 1.1 App后台的功能 (1)远程存储数据: (2)消息中转. 1.2 App后台架构 架构设计的流程 (1) 根据App的设计,梳理出App的业务流程: (2) 把每个业务流程 ...

  6. Triple的使用

    public Triple<Long, Long, Double> getCarRunSummary(String did, Date startDate, Date endDate) { ...

  7. SQL Server 列存储索引 第三篇:维护

    列存储索引分为两种类型:聚集的列存储索引和非聚集的列存储索引,在一个表上只能创建一个聚集索引,要么是聚集的列存储索引,要么是聚集的行存储索引,然而一个表上可以创建多个非聚集索引. 一,创建列存储索引 ...

  8. 运行Apache时出现the requested operation has failed

    在修改自己主机E:\wamp\apache\conf中的httpd.conf中的站点位置后,重新运行Apache时,出现对话框提示"the requested operation has f ...

  9. PASS模型-第一周个人报告

    PASS模型-第一周个人报告 博客班级 https://edu.cnblogs.com/campus/zjcsxy/SE2020 作业要求 https://edu.cnblogs.com/campus ...

  10. SQL中WHERE子句中为什么不能使用聚合函数?

    我们先来看一下这个代码: SELECT * FROM product WHERE SUM(slae_price) > 1000 GROUP BY product_type; 这样子会报错: SE ...