2016-05-24 8 views
5

私は50ギガバイト以上のファイルを保存することができないサーバーシステムで動作します。私のアプリケーションはファイルを生成するのに20分かかります。ソースから目的地まで30分以上経過したすべてのファイルを移動する方法はありますか?私はrsyncを試してみました:30分古いファイルを移動する

rsync -avP source/folder/ [email protected]:dest/folder 

が、これは私のサーバーからファイルを削除されませんので、ストレージの制限が失敗しました。

第2に、mvコマンドを使用すると、まだ生成されているファイルもコピー先フォルダに移動し、プログラムは失敗します。

+0

。 ファイルのmtimeは、ファイルが作成されているときに更新され、最新の30分以内に変更されていないファイルを選択できるようにする必要があります。 – louigi600

答えて

10

あなたはこのため-execとともにfindを使用することができます - あなたが必要と

は、ソースとターゲットのパスを持つ/sourcedirectory/destination/directory/を交換してください。

find /sourcedirectory -maxdepth 1 -mmin -30 -type f -exec mv "{}" /destination/directory/ \; 

基本的にコマンドがされて何、それは最後の-mmin -30 30分前に変更し、指定したターゲット・ディレクトリに移動し、現在のフォルダ-maxdepth 1内のファイルを見つけようとします。ファイルが最後にアクセスされた時刻を使用する場合は、-amin -30を使用します。

または範囲内で修正されたファイルを検索したい場合は、-mmin 30 -mmin -35のようなものを使うことができます。これにより、30分以上35分未満前に修正されたファイルが得られます。 manページから

参考資料: - 私の知る限りは、rsyncは、送信者側からファイルを削除しないであろうし、さらに30分後、古いファイルを選ぶことができない場合があります知っているよう

-amin n 
      File was last accessed n minutes ago. 

    -atime n 
      File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime 
      +1, a file has to have been accessed at least two days ago. 

    -mmin n 
      File's data was last modified n minutes ago. 

    -mtime n 
      File's data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file modification times. 
+0

ブラボー!!出来た :) – saurabh

関連する問題