自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux 系統(tǒng)中使用 inotifywait 監(jiān)控文件變化

系統(tǒng) Linux
有時候我們常需要當(dāng)文件變化的時候便觸發(fā)某些腳本操作,比如說有文件更新了就同步文件到遠(yuǎn)程機(jī)器。在實現(xiàn)這個操作上,主要用到兩個工具,一個是rsync,一個是inotifywait。inotifywait的作用是監(jiān)控文件夾變化,rsync是用來同步,可同步到本機(jī)的其他目錄或者遠(yuǎn)程服務(wù)器上。

有時候我們常需要當(dāng)文件變化的時候便觸發(fā)某些腳本操作,比如說有文件更新了就同步文件到遠(yuǎn)程機(jī)器。在實現(xiàn)這個操作上,主要用到兩個工具,一個是rsync,一個是inotifywait。inotifywait的作用是監(jiān)控文件夾變化,rsync是用來同步,可同步到本機(jī)的其他目錄或者遠(yuǎn)程服務(wù)器上。

我們先看下二者的安裝方式。

安裝rsync

wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz
tar zxvf rsync-3.1.1.tar.gz 
./configure –prefix=/usr/local/rsync-3.1.1
make
make install

安裝inotifywait

wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install

創(chuàng)建并運行腳本

新建腳本inotifywait.sh 并輸入以下內(nèi)容:

#!/bin/bash
export CNROMS_SRC=/home/ftpuser/gri/   # 同步的路徑,請根據(jù)實際情況修改
inotifywait --exclude '\.(part|swp)' -r -mq -e  modify,move_self,create,delete,move,close_write $CNROMS_SRC |
  while read event;
    do
    rsync -vazu --progress  --password-file=/etc/rsyncd_rsync.secret  /home/ftpuser/gri/sla  rsync@10.208.1.1::gri ##這里執(zhí)行同步的命令,可以改為其他的命令


  done

然后,執(zhí)行下面命令,會在后臺執(zhí)行監(jiān)控。

nohup sh inotifywait.sh > /dev/null 2>&1


接下來我們重點看下inotify的使用。

inotify 是一個 Linux 內(nèi)核提供的 API,它可以監(jiān)視文件系統(tǒng)事件,比如文件或目錄的創(chuàng)建、刪除、修改等。

inotify-tools 是一套用戶空間的工具,包括 inotifywait 和 inotifywatch,用于使用 inotify API。

這些工具可以對文件系統(tǒng)事件進(jìn)行監(jiān)控,并生成相應(yīng)的警告或日志。

inotifywait是一個非常實用的命令,它屬于inotify-tools包,可以用來監(jiān)控Linux文件系統(tǒng)事件。

下面是一些inotifywait應(yīng)用的例子:

監(jiān)控目錄或文件的創(chuàng)建、刪除、移動等操作:

inotifywait -m -r -e create,delete,move /path/to/directory

這個命令將監(jiān)視/path/to/directory目錄中所有文件和目錄的創(chuàng)建、刪除和移動操作。當(dāng)有文件或目錄被創(chuàng)建、刪除或移動時,這個命令將顯示相應(yīng)的信息。

監(jiān)控文件的修改操作:

inotifywait -m -r -e modify /path/to/file

這個命令將監(jiān)視/path/to/file文件的修改操作。當(dāng)有文件被修改時,這個命令將顯示相應(yīng)的信息。

監(jiān)控目錄或文件的屬性變化:

inotifywait -m -r -e attrib /path/to/directory

這個命令將監(jiān)視/path/to/directory目錄中所有文件和目錄的屬性變化。當(dāng)有文件或目錄的屬性發(fā)生變化時,這個命令將顯示相應(yīng)的信息。

監(jiān)控多個目錄或文件的事件:

inotifywait -m -r -e create,delete,move /path/to/directory1 /path/to/directory2 /path/to/file1 /path/to/file2

這個命令將監(jiān)視多個目錄和文件的創(chuàng)建、刪除和移動操作。當(dāng)有目錄或文件發(fā)生相應(yīng)的事件時,這個命令將顯示相應(yīng)的信息。

監(jiān)控事件并執(zhí)行命令:

inotifywait -m -r -e create,delete,move /path/to/directory -- /path/to/command

上面的命令將監(jiān)視/path/to/directory目錄中所有文件和目錄的創(chuàng)建、刪除和移動操作,并在事件發(fā)生時執(zhí)行指定的命令??梢詫⒚钐鎿Q為你想要執(zhí)行的任何命令。這些例子只是inotifywait的一些基本用法,大家可以根據(jù)自己的需求進(jìn)一步擴(kuò)展和定制。

責(zé)任編輯:華軒 來源: 微技術(shù)之家
相關(guān)推薦

2014-12-22 09:51:06

Linuxlogwatch

2019-12-31 21:26:54

系統(tǒng)安全網(wǎng)絡(luò)攻擊Linux

2019-12-31 14:00:35

LinuxNginx腳本語言

2009-12-14 13:33:31

linuxramdisk文件系統(tǒng)

2018-01-09 09:00:01

Linux命令文件壓縮

2020-07-29 07:40:19

Linux系統(tǒng)Vim

2010-01-12 16:05:53

Linux Mono

2010-07-19 12:49:55

Perl修改文件

2023-09-15 13:31:00

Linuxattr

2023-06-26 08:22:00

2020-12-02 13:19:47

Shell監(jiān)控文件Linux

2018-10-09 08:30:55

UbuntuLinuxRAR文件

2010-11-04 10:16:11

inotify監(jiān)控Linux文件系統(tǒng)

2020-06-15 07:00:00

Linux嵌入式系統(tǒng)

2024-12-16 15:07:10

2009-12-22 10:33:32

Linux操作系統(tǒng)

2011-05-18 09:30:40

Linux瀏覽器

2022-11-07 12:52:25

Linuxfsck命令

2010-05-26 12:57:59

linux 系統(tǒng)監(jiān)控

2015-12-17 14:32:46

NmonLinux性能
點贊
收藏

51CTO技術(shù)棧公眾號