Я подключен к 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, то мало что еще вы можете сделать.