Как проверить дисковое пространство на SFTP-сервере

11

Недавно я столкнулся с проблемой нехватки дискового пространства на SFTP-сервере и понял, что понятия не имею, как проверить, сколько осталось или даже общую сумму.

Кто-нибудь знает, как сделать это с помощью приложения, такого как FileZilla, или, возможно, есть команда, которая может быть использована для этой цели?

Обратите внимание, что сервер находится у третьей стороны, и я надеялся, что был способ ответить на этот вопрос, не проходя их.

Обновить:

Я попытался подключиться через оболочку, используя putty и cygwin ssh. Замазка молча завершилась сбоем, а Cygwin дал мне следующее сообщение об ошибке:

$ ssh [user]@[host] -i "[priv.key]"
Last login: Wed Aug 17 12:54:46 2011 from 195.204.103.176
Could not chdir to home directory /local00/ftproot/[user]: No such file or directory
/usr/local/sbin/scponlyc: No such file or directory
Connection to [host] closed.

Любые идеи?

kjetilh
источник
1
У вас есть доступ к серверу?
Свен
Я попытался соединиться через PuTTy и SSH, используя того же пользователя, хост и закрытый ключ, но как только начинается процесс аутентификации, окно закрывается. Я не уверен, как это интерпретировать независимо от того, прошла ли аутентификация или нет, или у меня нет доступа к оболочке. Я могу подключиться с тем же логином с FileZilla
kjetilh
Пожалуйста, смотрите мой обновленный вопрос
kjetilh
1
Ну, как ответил mailq, в этом случае все готово: нет способа проверить scponlyсреду.
Франсуа Феже

Ответы:

15

scponlyОболочка может позволить quotaкоманду (если она включена). Но похоже, что вы scponlyнастроили поддержку только SFTP, при этом доступ к оболочке запрещен.

Протокол SFTP позволяет проверять дисковое пространство (в отличие от других ответов).

Извлечение из SFTP - проверка свободного места на доступном вопросе stackoverflow.com:

Протокол SFTP версии 6 позволяет один раз проверить доступное пространство ( SSH_FXP_EXTENDEDимя запроса space-available). Большинство SSH / SFTP-серверов (особенно OpenSSH, как наиболее распространенный) поддерживают только SFTP-версию 3.

OpenSSH, с другой стороны, поддерживает statvfs@openssh.comпроприетарное расширение.

Расширение OpenSSH поддерживается некоторыми клиентами SFTP.

  • Очевидно, sftpклиент OpenSSH через dfкоманду:

    df [-hi] [path]
    Отображение информации об использовании для файловой системы, содержащей текущий каталог (или путь, если указан). Если -hуказан флаг, информация о емкости будет отображаться с использованием «удобочитаемых» суффиксов. Эти -iзапросы флагов отображения информации инф.узлов в дополнение к информации емкости. Эта команда поддерживается только на серверах, которые реализуют расширение «statvfs@openssh.com».

    sftp> df -h
        Size     Used    Avail   (root)    %Capacity
       591GB    358GB    203GB    233GB          60%
    
  • WinSCP также поддерживает это (см. Диалог информации о сервере и протоколе ):

    WinSCP Server и диалог информации о протоколе

    (Я автор WinSCP)

Мартин Прикрыл
источник
Да, после использования командной строки sftp для подключения к серверу, можно использовать df -h /для проверки свободного места и т. Д.
LyK
1
К сожалению, не все серверы поддерживают это: sftp> df Сервер не поддерживает расширение statvfs@openssh.com
Томас Лаурия
@ThomasLauria Это собственное расширение OpenSSH. Хотя некоторые другие серверы могут также поддерживать его, не все это делают.
Мартин Прикрыл
1
ssh <host> df -h

Предоставит вам всю необходимую информацию при отсутствии таких вещей, как дисковые квоты. Если у вас нет доступа к оболочке (или какой-либо способ запуска команд, например, через PHP exec), то вы не можете проверить дисковое пространство, но опять же, если у вас нет оболочки, как это может быть ваша ответственность администрировать сервер и управлять дисковым пространством?

ombble
источник
Ну, это не строго моя ответственность, но я написал несколько сценариев экспорта / импорта, относящихся к SFTP-серверу, и я уведомлен о появившихся ошибках. В конечном итоге мы хотели бы изменить / переписать процесс очистки, но теперь я просто хочу больше информации
kjetilh
-1

С набором команд SFTP невозможно получить доступный размер или используемое пространство.

Если вы можете подключиться к серверу по SSH (тот же хост, пользователь, пароль), вы можете ввести a, df -hчтобы увидеть доступное пространство. Или du -hв папке, чтобы увидеть используемое пространство папки.

mailq
источник
Это неправда, что SFTP не позволяет получить использование диска. Смотрите мой другой ответ.
Мартин Прикрыл