毎日このbashスクリプトを実行しているUbuntuサーバーに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
ファイルを保存したいディレクトリに移動してExpectスクリプトを実行し、lcd
スクリプトの8行目のコマンドを省略することです。