0

わかりましたので、CentOSを実行しているWebサーバーがあり、内部でのみいくつかのWebサイトをホストしています。これは私たちの開発サーバーであり、古いジャンク Web サイトやその他のものがたくさんあります。

私は、6 か月以上変更されていないファイルを見つけ、それらをすべて tarball にグループ化してから削除するコマンドを作成しようとしていました。これまでのところ、引数などを使用してさまざまな種類の検索コマンドを試してきました。私たちの構造はそのように見えます

/var/www/joomla/username/fileshere/temp /var/www/username/fileshere

だから私は次の行の中で何かを試しました:

find /var/www -mtime -900 ! -mtime -180 | xargs tar -cf test4.tar

予想される結果が 50 GB を超える場合に、結果の tar が 10 MB になるだけです。

代わりにgzipを使用してみましたが、サーバー全体を圧縮してしまったため、使用できなくなり、ファイルシステム全体を転送して完全に新しいサーバーを再インストールする必要があり、多くのたわごととトラブルが発生しました...あなたはアイデアを得る. サーバーを爆破せず、6 か月以上変更されていないすべてのファイルとディレクトリを検索する完璧なコマンドを見つけたいと思います。

4

2 に答える 2

1

ctime には注意してください。

  1. ctime は、inode に加えられた変更 (パーミッション、所有者の変更など) に関連しています。

  2. ファイルが最後にアクセスされた時刻 (ファイルシステムが noatime オプションまたは relatime オプションを使用しているかどうかを確認してください。その場合、atime オプションは期待どおりに機能しない可能性があります)

  3. ファイル内のデータが最後に変更された mtime。

何をしようとしているのかによっては、mtime オプションが最適なオプションになる可能性があります。

また、print0 オプションを確認する必要があります。男から見つけます:

-print0
          True;  print  the full file name on the standard output, followed by a null character (instead of the newline character that -print uses).  This allows file names that contain newlines or
          other types of white space to be correctly interpreted by programs that process the find output.  This option corresponds to the -0 option of xargs.

何をしようとしているのかわかりませんが、次のコマンドが役立つ場合があります。

find /var/www -mtime +180 -print0 | xargs -0 tar -czf example.tar.gz
于 2013-10-15T20:30:49.917 に答える