Как составить список всех файлов и получить общий размер всех файлов на SFTP-сервере?

Как составить список всех файлов и получить общий размер всех файлов на SFTP-сервере?

Я подключен к sftp-серверу с помощью

sftp -i key.pem user@server

Сервер содержит журналы, и я могу вывести список журналов до 4 дней назад с помощью ls. Проблема в том, что ls, похоже, не может извлечь журналы старше 4 дней. Мне интересно, как мне вывести список всех журналов в каталоге и узнать их общий размер?

Аналогичный вопрос о размере был заданздесьи предоставляет решение с использованием du -hc. Но эта команда не существует на моем сервере sftp, и у меня нет доступа по ssh. Есть идеи?

решение1

lftpимеет duкоманду и поддерживает sftpпротокол:

lftp sftp://user@host

Или указать используемый ключ SSH и пропустить запрос пароля:

lftp -e 'set sftp:connect-program ssh -axi key.pem' sftp://user:@host

И запустите du(или du -baдля перечисления каждого файла вместе с его размером в байтах, или du -haдля использования суффиксов) в sftpкомандной строке. Обратите внимание, что это отличается от duкоманды Unix тем, что она выдает видимый размер, а не использование диска, и не включает размер файлов каталога.

Если lsне выводит файлы старше 4 дней, наиболее вероятным объяснением является то, что их нет или больше нет. Команда lsклиента sftpили lftpпросто выполнитЗапрос или серия запросов «чтение каталога» в протоколе SFTPдля извлечения содержимого каталога. Если сервер не отправляет то, что там находится, и у вас нет другого способа получить доступ к данным, кроме как через SFTP, то мало что еще вы можете сделать.

Связанный контент