SSHによるリモート実行はリンクに従わないのですか?

SSHによるリモート実行はリンクに従わないのですか?

ssh server ls /var/lib/edumate/backup/weekly/*DBB*ファイルを返す

/var/lib/edumate/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120610020013.001 

ただし、ssh server ls /data/backup/weekly/*DBB*マウントリンクディレクトリの内容を返します。

/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120513020022.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120520020018.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120527020019.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120603020028.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120610020013.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120710120854.001

/data他のパーティションの場所

/dev/sdb2 on /data type ext3 (rw,acl,user_xattr)

バックアップはシンボリックリンクです。/data/backup

lrwxrwxrwx 1 root     root       12 Jul 10 14:27 backup -> /data/backup/

もちろん、インストール/リンクされたディレクトリでファイルのリストを探しています。解決策とは何ですかどのように/var/lib/edumate/backup使用しますか?lsリンクされたものの代わりに?scp同じように行動しますか?

答え1

私の推測では、実行中のクライアントシステムにsshというディレクトリもあるということです/var/lib/edumate/backup/weekly。これを実行すると、クライアントシステムのディレクトリには1つのファイルしか含まれません。しかし、ここにはあなたが期待するすべてのファイルが含まれています。

何が起こっているのかは、サーバーではなくクライアントシステムでワイルドカード一致が発生することです。当時、おそらくファイルが1つしかなかったでしょう。したがって、サーバーがコマンドから受信する内容は次のとおりです。

ls /var/lib/edumate/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120610020013.001

今後この問題を回避するには、引用符を使用してコマンドを実行してください。例:

ssh server ls "/var/lib/edumate/backup/weekly/*DBB*"

その後、ワイルドカード文字はクライアントシステムのシェルによって拡張されずにサーバーに渡されます。

関連情報