私の 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 スクリプトを実行することです。