我有这个要求:客户端通过 SFTP 将 csv 文件上传到文件夹中。Wehn 这些都完成了客户端会上传一个“触发”文件来表示上传完成。我尝试使用 inotifywait 等待此触发器文件,然后以相同的顺序将所有 csv 文件和此“触发器”文件上传到另一个 ftp 服务器 - 即。首先是 csv 文件,然后是触发文件。我当前的脚本只是将首先上传的任何文件上传到 ftp 服务器并忽略其余文件。我的 bash 不是很好,但我正在尝试....
#!/bin/bash
HOST='192.168.1.100'
USER='TESTUSER1'
PASSWD='password1'
FILE='\*\.csv'
TRIGGER='trigger.txt'
while TRIGGER=$(inotifywait --format '%f' -e close /home/testuser1/uploads/ ); do
ftp -n $HOST << EOT
user $USER $PASSWD
cd /home/testuser1/sftptest/
put $FILE
put $TRIGGER
quit
EOT
done
rm /home/testuser1/uploads/*.*