天天看點

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`

lftp -p ${PORT} -u ${USER},${PASS} sftp://${HOST} >> /home/logs/debug.log 2>&1 <<EOF

put -c ${zip} -o ${zip%%.*}.zip

bye

EOF

echo "done"

rename .zip.tmp .zip *.zip.tmp

###################################################################

rename .dat .dat.tmp *.dat

for dat in `ls *.dat.tmp`

put -c ${dat} -o ${dat%%.*}.dat

echo "sftp is finish."  > /home/logs/sftp.log

date > /home/logs/sftp.log

rename .dat.tmp .dat *.dat.tmp

<a href="http://down.51cto.com/data/2359277" target="_blank">附件:http://down.51cto.com/data/2359277</a>

本文轉自 liang3391 51CTO部落格,原文連結:http://blog.51cto.com/liang3391/716141