Monday, March 23, 2015

Shell Script to move files from one directory to another with a delay of 1minute

The following shell script provides a solution to move the files from the /opt/a directory to /opt/b directory with 100 files/min which means it will only move 100 files from the /opt/a directory which can have thousands of file than have a delay of 1min and than again after 1min it will further move  the 100 files till all the files in the directory /opt/a moves to other directory /opt/b

 #Find all the files only in directory /opt/a and count the number of the files, starttime will display when the script start executing
 count=`find /opt/a/ -type f | wc -l`
 echo "The script started at $starttime"
 #The condition is set till the file count is greater than 0 continue moving files and reduce the counter by 100  
 #A delay is introduce by sleep command
 while [ $count -gt 0 ]
  find /opt/a/ -type f | head -100 | xargs mv -t /opt/b/
 /bin/sleep 60
 ((count= $count - 100))
 echo "The script completed at `date`"
 exit 0

The practical application of this script can be configured if you don't want to increase the throughput on the server. Also it will keep a check on the network resources in case files are larger in size.


Post a Comment