Чи є спосіб зробити віддалений "ls", подібний до "scp", чи віддалена копія в стандартній оболонці Linux?
Чи є спосіб зробити віддалений "ls", подібний до "scp", чи віддалена копія в стандартній оболонці Linux?
Відповіді:
Ви завжди можете це зробити:
ssh user@host ls -l /some/directory
Це дозволить SSH хосту, запустіть ls, скине висновок до вас і негайно відключиться.
scp
та rsync
дзвінки, можливо sftp
, і все.
alias rls="ssh user@host ls -l"
Перезавантажте оболонку і rls /some/directory
має працювати.
Щоб перерахувати всі файли в каталозі:
rsync host.name.com:directory/path/'*'
Щось на кшталт пошуку каталогу / path -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. Я думаю, це означає, що це використання SSH у фоновому режимі?
ls -l
. У моїй системі, схоже, не існує можливості просто перерахувати файли.
Для всіх, хто приходить через Google до цього питання, тому що вони шукають спосіб перелічити віддалені файли, але не можуть отримати доступ до віддаленого сервера через ssh (звичайний випадок для резервних серверів), ви можете використовувати "sftp".
Приклад:
sftp username@hostname.xyz
ls
cd somedir
exit
Почніть інтерактивний сеанс у певному віддаленому каталозі:
sftp [user@]host[:dir]
Я вважаю, що я найчастіше використовую це для отримання результату ls, простого списку файлів без усіх дозволів та дат тощо, і зберігати його у локальному файлі.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Ви можете запускати все, що завгодно, в котируваннях. Весь вихід закінчується у вашому локальному текстовому файлі. Або якщо ви хочете запустити великий серверний скрипт на сервері та захопити всі його результати, навіть помилки:
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
{ }
потрібні не потрібні.