shell上传文件到sftp场景应用脚本
#!/bin/sh
HOST=192.168.110.20
USER=root
PASS=123456
PORT=1221
DIR=$(date +%Y-%m-%d -d '1 days ago')
cd /data/ftp/
while true
do
du -s > /home/logs/du_1.txt
sleep 300
du -s > /home/logs/du_2.txt
diff /home/logs/du_1.txt /home/logs/du_2.txt
if [ "$?" = 0 ];then
break
else
continue
fi
done
###Archive file#########################################################################
mkdir ${DIR}
find ./ -maxdepth 1 -name "*$(date +%Y%m%d -d '1 days ago')*" -print | xargs -i mv {} ${DIR}
########################################################################################
sleep 2
cd ${DIR}
##################################################################
rename .zip .zip.tmp *.zip
echo "Starting to sftp…"
for zip in `ls *.zip.tmp`
do
lftp -p ${PORT} -u ${USER},${PASS} sftp://${HOST} >> /home/logs/debug.log 2>&1 <
put -c ${zip} -o ${zip%%.*}.zip
bye
EOF
echo "done"
done
rename .zip.tmp .zip *.zip.tmp
###################################################################
sleep 2
###################################################################
rename .dat .dat.tmp *.dat
echo "Starting to sftp…"
for dat in `ls *.dat.tmp`
do
lftp -p ${PORT} -u ${USER},${PASS} sftp://${HOST} >> /home/logs/debug.log 2>&1 <
put -c ${dat} -o ${dat%%.*}.dat
bye
EOF
echo "done"
done
echo "sftp is finish." > /home/logs/sftp.log
date > /home/logs/sftp.log
rename .dat.tmp .dat *.dat.tmp
###################################################################
©著作权归作者所有:来自51CTO博客作者liang3391的原创作品,如需转载,请注明出处,否则将追究法律责任
liang3391
296篇文章,73W+人气,1粉丝