我一直在尝试压缩文件,然后使用bash脚本通过FTP上传,但它正在上传损坏的zip文件。我已经环顾四周,我正在尝试使用lsof | grep确认文件已完成,但我不确定我在做什么。
所以我有
cd /var/test/tobezipped
zip -r test.zip *
FOLDER="/var/test/tobezipped"
ZIPS=$(ls $FOLDER)
for F in $zips ; do
while [ -n "$(lsof | grep $F" ] ; do
sleep 1
done
ftp -n <<EOF
open myserver
user user pass
put test.zip
EOF
done
并且test.zip在上传时已损坏,所以在另一台服务器上它是不可读的,但在服务器上它被压缩就可以了,直到我检查它。
任何建议都值得赞赏,我对这类事情都很陌生,并试图寻找解决方案,不太确定我是朝着正确的方向前进。提前谢谢。
答案 0 :(得分:4)
从手册页:
放置local-file [remote-file] 将本地文件存储在远程计算机上。如果未指定remote-file,则使用本地文件名 按照处理 命名远程文件时的任何ntrans或nmap设置。文件传输使用当前设置的类型,格式,模式, 和结构。
我想问题是你没有在BINARY模式下传输文件。
试试这个:
ftp -n <<EOF
open myserver
user user pass
binary
put test.zip
EOF
答案 1 :(得分:0)
试试这个。
PID=$(pgrep zip)
while [[ ( -d /proc/$PID) ) && ( -z `grep zombie /proc/$PID/status` ) ]]; do
sleep 1
done