自动删除一个文件列表中的文件
时间:2008-07-14 来源:jackylau
需求:自动把当前目录下的list文件里的文件传到指定的FTP SERVER.并自动把传过的文件删除.实时的把FTP完成的文件从list列表中删除.
说明:此脚本是根据需ftp的文件的访问时间点来确定此文件是否真的被ftp到FTP SERVER了。
#!/bin/sh
# Author: jackylau <[email protected]>
while :;
do
FILE_NAME=`head -n 1 list`
PRE_ACC_TIME=`stat -t $FILE_NAME|awk '{print $12}'`
if [ ! -z $FILE_NAME ];then
FTP(){
ftp -n 192.168.5.16<<!
user ftp_user ftp_passwd
bin
put $FILE_NAME
bye
!
}
FTP
AFT_ACC_TIME=`stat -t $FILE_NAME|awk '{print $12}'`
#if ftp successfully,delete file and file within list
if [ "$PRE_ACC_TIME" != "$AFT_ACC_TIME" ];then
echo "wq"|ex -c "/$FILE_NAME/d" list
rm -f $FILE_NAME
else
echo "`date +%Y-%m-%d-%H:%M` Ftp Error!" >>ftp_log
exit 1
fi
else
exit 2
fi
done
说明:此脚本是根据需ftp的文件的访问时间点来确定此文件是否真的被ftp到FTP SERVER了。
#!/bin/sh
# Author: jackylau <[email protected]>
while :;
do
FILE_NAME=`head -n 1 list`
PRE_ACC_TIME=`stat -t $FILE_NAME|awk '{print $12}'`
if [ ! -z $FILE_NAME ];then
FTP(){
ftp -n 192.168.5.16<<!
user ftp_user ftp_passwd
bin
put $FILE_NAME
bye
!
}
FTP
AFT_ACC_TIME=`stat -t $FILE_NAME|awk '{print $12}'`
#if ftp successfully,delete file and file within list
if [ "$PRE_ACC_TIME" != "$AFT_ACC_TIME" ];then
echo "wq"|ex -c "/$FILE_NAME/d" list
rm -f $FILE_NAME
else
echo "`date +%Y-%m-%d-%H:%M` Ftp Error!" >>ftp_log
exit 1
fi
else
exit 2
fi
done
相关阅读 更多 +