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*"
Затем подстановочные знаки будут переданы на сервер, а не развернуты оболочкой на клиентской машине.