端末からSFTPダウンロードは正常に機能しますが、スクリプトを介しては機能しません。

端末からSFTPダウンロードは正常に機能しますが、スクリプトを介しては機能しません。

変数デバイスに含まれるホスト名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
$

おすすめ記事