2012-03-29 9 views
0

現在、NFSファイルシステム上の1つのディレクトリに450万のファイルがあります。その結果、そのディレクトリに対する読み取りまたは書き込み操作は、大きな遅延を引き起こしています。 この問題を解決するために、そのディレクトリ内のすべてのファイルが、作成された年に基づいて異なるディレクトリに移動されます。UnixボックスのNFSファイルシステムでのファイル移動の問題

明らかに、-ctimeオプションで使用しているfindコマンドは、膨大なファイルボリュームのために動作していません。 作成年に基づいてファイルのリストを作成してから、forループでそれらを移動するスクリプトにリストを送りました。しかし、これでもls-lrtがハングアップするのに失敗しました。

この問題を解決する他の方法はありますか? 助けてください。

スクリプトの内容: 1)filelist.sh

ls -tlr|awk '{print $8,$9,$6,$7}'|grep ^2011|awk '{print $2,$1,$3,$4}' 1>>inboundstore_$1.txt 2>>Error_$1.log 
    ls -tlr|awk '{print $8,$9,$6,$7}'|grep ^2011|wc -l 1>>count_$1.log 

2)filemove.sh

INPUT_FILE=$1 ##text file which has the list of files from the previous script 
    FINAL_LOCATION=$2 ##destination directory 
    if [ -r $INPUT_FILE ] 
    then 
     for file in `cat $INPUT_FILE` 
     do 
      echo "TIME OF FILE COPY OF [$file] IS : `date`" >> xyz/IBSCopyTime.log 
      mv $file $FINAL_LOCATION 
     done 
    else 
     echo "$INPUT_FILE does not exist" 
    fi 
+0

「ls」出力を並べ替える理由がわかりません。 '-tr'オプションなしで試してください。 – ninjalj

+0

@ ninjalj- -trオプションのない単純なlsコマンドでさえ失敗しました。 – abhijithln

答えて

関連する問題