SFTP経由でファイルリストをテキストファイルとして保存

SFTP経由でファイルリストをテキストファイルとして保存

私は以下に私自身の答えを与えた。

SFTPを使用して正常に動作するいくつかのbashスクリプトがあります。私がしたいのは、単にフォルダのlsまたはdirをSFTPサーバー上のファイルにリダイレクトすることです。

cronジョブとして実行するか、手動で実行できます。リモートサーバーのファイルリストを見ることができますが、リモートサーバーからローカルサーバーへのファイルリストをテキストファイルとして生成したいと思います。 。

これが私がこれまでbashスクリプトについて知っていることです。以下の4番目のエコーは問題のある行です。

#!/bin/bash

localpath=/home/localacct/somepath
remotelocation=/home/account/logs/archive
remotehost=' [email protected]'

    echo  > $localpath/list.sftp
    echo "cd $remotelocation " >> $localpath/list.sftp
    echo "dir *.* " >> $localpath/list.sftp
    echo "dir *.* > $localpath/dirlist.txt " >> $localpath/list.sftp
    echo "bye " >> $localpath/list.sftp
    sftp -b $localpath/list.sftp $remotehost

exit

ベストアンサー1

コマンドはsftp非常に制限的です。目的のタスクを実行できない場合は、他のアプローチを使用できます。SSHFSファイルシステムSSHFSはSFTPをトランスポートプロトコルとして使用するため、サーバー側にはSFTPクライアントが1つだけ表示されます。利用できる必要があります。ヒューズクライアント側から。

SSHFSを使用すると、リモートディレクトリを既存の空のディレクトリにマウントし、通常のコマンドを使用できます。

mkdir remote
sshfs "$remotehost:$remotelocation" remote
cd remote

echo *.* >"$localpath/dirlist.txt"

fusermount -u remote
rmdir remote

おすすめ記事