変数デバイスに含まれるホスト名fe MikroTikで始まるすべてのバックアップをダウンロードするバックアップスクリプトを作成しています。コマンドを端末に入れると必要なファイルはすべてダウンロードされますが、スクリプトに入れるとFile Mikrotikが見つからないというメッセージが表示されます。
コードサンプルは次のとおりです。
#!/bin/bash
user="admin"
address="IP"
#command will get devcie hostname in complex form
ssh $user@$address '/system identity print interval=' > devices
#will get device hostname
tmpDevices=$(cat devices)
device=$(echo $tmpDevices | awk ' {print $2} ')
echo "Device hostname is $device"
echo "Connecting to device via SFTP and downloading files"
#sftp "${user}@${address}:/${device}*"
sftp $user@$address:$device*
出力は次のとおりです。
Device hostname is MikroTik
MikroTik
Connecting to device via SFTP and downloading files
Connected to 10.120.0.253.
File "/MikroTik" not found.
アドバイスをすることができますか?
アドリアン。
ベストアンサー1
SFTPの代わりにscpを使用することを検討できます。リモートホストのルートディレクトリからローカルホストの現在のディレクトリにファイルをコピーするとします。
scp "${user}@${address}:/${device}*" .
たとえば、リモートホストに次のファイルを作成しました。
$ ssh user@remoteHost "ls /MikroTik*"
/MikroTik_dec07backup.backup
/MikroTik_dec07export.rsc
/MikroTik_dec07log.txt
私のローカルホストで次のことができます。
$ mkdir /tmp/example
$ cd /tmp/example
$ scp "user@remoteHost:/MikroTik*" .
MikroTik_dec07backup.backup 100% 0 0.0KB/s 00:00
MikroTik_dec07export.rsc 100% 0 0.0KB/s 00:00
MikroTik_dec07log.txt 100% 0 0.0KB/s 00:00
$ ls
MikroTik_dec07backup.backup MikroTik_dec07export.rsc MikroTik_dec07log.txt
$