Я хочу переместить все файлы из локального каталога в удаленный каталог.
И я использую этот код для достижения этого
SOURCE_FILE=/var/www/oneserver/*
TARGET_DIR=/var/www/anotherServer
ARCHIEVEFILE=/var/www/archieveServer
/usr/bin/expect<<EOD
spawn /usr/bin/sftp -o Port=$PORT $USER@$HOST
expect "password:"
send "$PASSWORD\r"
expect "sftp>"
send "put $SOURCE_FILE $TARGET_DIR\r"
expect "sftp>"
send "bye\r"
EOD
Он работает нормально, но иногда останавливается и отправляет только некоторые файлы.
Я также хочу переместить уже отправленный файл в ARCHIEVEFILE с помощью команды mv. Но не понимаю, как его переместить. Я не могу использовать scp
потому что удаленному серверу не разрешено использовать базовый порт, и единственный способ - использовать sftp.
Кто-нибудь может помочь, пожалуйста?
[РЕДАКТИРОВАТЬ]
$ARCHIEVEFILE
по-прежнему является локальным сервером, просто для резервного копирования / перемещения, чтобы эти файлы больше не отправлялись со следующим cronjob
TARGET_DIR
- это удаленный сервер.