Bash スクリプトはリモート サーバーに SFTP してファイルをダウンロードし、ローカル マシンの適切なディレクトリに cd します。

Bash スクリプトはリモート サーバーに SFTP してファイルをダウンロードし、ローカル マシンの適切なディレクトリに cd します。

私の Ubuntu サーバーには、この bash スクリプトを毎日実行する cron があります。

#!/usr/bin/expect -f
spawn sftp user@ip
expect "password:"
send "password\n"
expect "sftp>"
send "cd remote_directory\n"
expect "sftp>"
send "lcd ~/dtc/data/outstanding\n"
expect "sftp>"
send "mget * \n"
expect "sftp>"
send "exit\n"
interact

SFTP 経由でリモート サーバーに接続し、多数のファイルをダウンロードします。これは問題なく動作しますが、これらのファイルをこのスクリプトを実行しているマシン (私のサーバー) の特定のディレクトリに表示したいのです。

これは私が 8 行目で実行しようとしていることですが、うまくいきません。このスクリプトを cron 経由で実行し、ダウンロードしたファイルを適切なディレクトリに配置するために、サーバー上の適切なディレクトリに cd するようにするにはどうすればよいですか?

答え1

最も簡単な解決策は、cdファイルを保存するディレクトリに移動し、lcdスクリプトの 8 行目のコマンドを省略して expect スクリプトを実行することです。

関連情報