通过 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。当您运行它时,客户端计算机上的该目录仅包含一个文件。但现在它包含了您期望的所有文件。

所发生的情况是通配符匹配发生在客户端计算机而不是服务器上。当时,那里可能只有一个文件。因此,服务器从您的命令中收到的内容是:

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

为了防止将来出现这种情况,请运行带引号的命令,例如:

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

然后,通配符将被传递到服务器,而不是由客户端计算机上的 shell 扩展。

相关内容