2012-03-29 63 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

回答