FTP文件上传 - 脚本STUCK

时间:2012-12-12 19:09:16

标签: linux bash unix terminal

我有一个基本的bash脚本,我用来复制文件并将其上传到我的FTP:

cp -i /var/mobile/file.db /var
cd /var

HOST=MYFTPHOST
USER=USERNAME
PASS=PASSWORD

ftp -inv $HOST << EOF
  user $USER $PASS
  cd websitefolder
  put sms.db
  bye
EOF

rm -f file.db

当我运行脚本时,它会将文件完美地保存到我的FTP中。但我正在从不同的计算机上运行脚本,所以不知何故,我希望每次上传它时脚本都会将file.db上传到我的FTP:

  • file1.db
  • file2.db
  • file3.db
  • file4.db

1 个答案:

答案 0 :(得分:3)

您的问题有点不清楚,但如果我理解正确,您会尝试按顺序命名数据库文件,而不会覆盖任何旧文件。您必须从FTP服务器获取文件列表才能找出已上传的文件。

此代码将从服务器获取以“file”开头并以“.db”结尾的文件列表,计算它们,然后将“file.db”的名称更改为“fileXX.db”,其中“XX”是命名序列中的下一个数字(即file1.db,file2.db,file3.db等)。

我不确定“sms.db”来自哪里。我在脚本中将其更改为“file.db”。

cp -i /var/mobile/file.db /var
cd /var

HOST=MYFTPHOST
USER=USERNAME
PASS=PASSWORD

ftp -inv $HOST << EOF
user $USER $PASS
cd websitefolder
LIST=$(ls | grep file*.db)
bye
EOF

FILECOUNT=0
for FILE in $LIST
do
    if [ -f $FILE ];
    then
        FILECOUNT+=1
done
FILECOUNT+=1
NEXTDB="file$FILECOUNT.db"
mv file.db $NEXTDB

ftp -inv $HOST << EOF    
put $NEXTDB
bye
EOF