Ich bin mit einem SFTP-Server verbunden über
sftp -i key.pem user@server
Der Server enthält Protokolle und ich kann Protokolle auflisten, die bis zu 4 Tage alt sind, indem ich ls
. Das Problem ist, dass ls anscheinend keine Protokolle abrufen kann, die älter als 4 Tage sind. Ich frage mich, wie ich alle Protokolle im Verzeichnis auflisten und ihre Gesamtgröße ermitteln kann.
Eine ähnliche Frage zur Größe wurde gestelltHierund bietet eine Lösung mit du -hc
. Aber dieser Befehl existiert nicht auf meinem SFTP-Server und ich habe auch keinen SSH-Zugriff. Irgendwelche Ideen?
Antwort1
lftp
hat einen du
Befehl und unterstützt das sftp
Protokoll:
lftp sftp://user@host
Oder geben Sie den zu verwendenden SSH-Schlüssel an und überspringen Sie die Kennwortabfrage:
lftp -e 'set sftp:connect-program ssh -axi key.pem' sftp://user:@host
Und führen Sie es an der Eingabeaufforderung aus du
(oder du -ba
um jede Datei zusammen mit ihrer Größe in Bytes aufzulisten oder du -ha
Suffixe zu verwenden) sftp
. Beachten Sie, dass es sich vom Unix- du
Befehl darin unterscheidet, dass es die scheinbare Größe im Gegensatz zur Festplattennutzung angibt und die Größe von Verzeichnisdateien nicht einschließt.
Wenn ls
Dateien, die älter als 4 Tage sind, nicht aufgelistet werden, liegt dies wahrscheinlich daran, dass sie nicht oder nicht mehr vorhanden sind. Der ls
Befehl des sftp
oder lftp
Clients führt lediglich einen„Verzeichnis lesen“-Abfrage oder Abfragereihe im SFTP-Protokollum den Verzeichnisinhalt abzurufen. Wenn der Server den Inhalt nicht sendet und Sie keine andere Möglichkeit haben, als über SFTP auf die Daten zuzugreifen, können Sie nicht viel anderes tun.