2012-03-29 104 views
0

目前NFS文件系統上的單個目錄中有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 2012-03-29 10:30:06

+0

@ ninjalj - 即使沒有-tr選項的簡單ls命令失敗。 – abhijithln 2012-03-29 10:48:33

回答