sftp サーバーからのファイル コピーをスケジュールしたいと考えています。公開鍵は許可されていないため、expect を使用する方法は 1 つしかわかりません。
問題は、ファイル名が毎日変わることですが、ファイル名は実際には日付+.csvなので、スケジュールできます。
しかし、変数ファイル名を設定できません...
2つのスクリプトでこのようなことをしたいです。
スクリプト 1 (sh スクリプト)
ファイル名=日付 %Y%m%d
エクスポートファイル名
スクリプト 2 (exp スクリプト)
sftp サーバーに接続してファイル名を取得します。
出口
私のバスト努力は以下のようなものです。
私の *.sh スクリプト =
始める
#!/bin/sh
file=$(date --date='-2 days' +%Y%m%d.csv)"
# looking for something like this (20121031.csv)
export file
expect /home/desk4/task/sftp.exp
終わり
「/home/desk4/task/sftp.exp」にある期待スクリプト
始める
!/usr/bin/expect
spawn /usr/bin/sftp user@server.com
expect "user@server.com's password:"
send "password"
send "\r"
expect "sftp>"
spawn "get $file \r"
expect "sftp>"
send "bye \r"
終わり
エラー
./sftp.sh: 3: エクスポート: 20121031.csv: 変数名が正しくありません
以下のようなテスト目的のshスクリプトを更新すると...
#!/bin/sh
file=$(date)
export $file
expect /home/harshit/Desktop/1/sftp.exp
====================================== エラー= ./sftp.sh: 3: エクスポート: 2: 変数名が正しくありません
- 終わり -
リプレイありがとうございます..