1

サーバー全体(再帰的)で最後に変更されたファイルと新しいファイルを表示し、それらをルートのtxtファイルにエコーするシェルコマンドが必要です。

誰もこのようなことはありますか?

私は試した

find / - mmtime 30 -printf "%AD %Ar - %p\n" 2> /dev/null | sort -r > /lastmodified.txt

過去30日間に変更されたすべてのファイルのすべての名前をルートのtxtファイルに投稿しますが、サーバー自体のファイルのみが表示され、Webサイトがアップロードされているディレクトリは表示されません.

事前に感謝します - 私は専門家ではありません.これは私がこれまでに見つけたものです. 先週発生したハッキン​​グされたファイルを修正するためにこれが必要なので、比較的緊急です。

4

2 に答える 2

0

http://content.hccfl.edu/pollock/Unix/FindCmd.htmから:

find . -mtime 0   # find files modified within the past 24 hours
find . -mtime -1  # find files modified within the past 24 hours
find . -mtime 1   # find files modified between 24 and 48 hours ago
find . -mtime +1  # find files modified more than 48 hours ago

-mtime -30過去 30 日間を取得するには、chorobas のコメントで提案されているように、「m」とマイナス記号が 1 つだけあることを確認してください。-mtime 30ちょうど 30 日前のファイルのみを提供します。

-daystartちょうど 30*24 時間前ではなく、午前 0 時から始まる過去 30 日間のファイルを取得するオプションを使用することができます。%TDand%Trの代わりに%ADandを使用して、 %Ar(アクセス時間の代わりに) 変更時間を取得します。

最終的なコマンドは次のようになります。

find / -daystart -mtime -30 -printf "%TD %Tr - %p\n" 2> /dev/null | sort -r > /lastmodified.txt

12は 01 の前にソートされるため、ソートは 1 月に中断されることに注意してください%T+%Tu/%Tm/%Td %TH:%TM11/29 21:07)

于 2012-11-29T19:10:00.677 に答える
0

inotify-tools はどうですか

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

http://linux.die.net/man/1/inotifywait


inotifywait の例 2

#!/ビン/sh

EVENT=$(inotifywait --format '%e' ~/file1)

[ $? != 0 ] && 終了

[ "$EVENT" = "MODIFY" ] && echo 'ファイルが変更されました!'

[ "$EVENT" = "DELETE_SELF" ] && echo 'ファイルを削除しました!'

#など...

于 2013-01-25T21:12:45.673 に答える