Wie liste ich alle Dateien auf und erhalte die Gesamtgröße aller Dateien auf einem SFTP-Server?

Wie liste ich alle Dateien auf und erhalte die Gesamtgröße aller Dateien auf einem SFTP-Server?

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

lftphat einen duBefehl und unterstützt das sftpProtokoll:

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 -baum jede Datei zusammen mit ihrer Größe in Bytes aufzulisten oder du -haSuffixe zu verwenden) sftp. Beachten Sie, dass es sich vom Unix- duBefehl darin unterscheidet, dass es die scheinbare Größe im Gegensatz zur Festplattennutzung angibt und die Größe von Verzeichnisdateien nicht einschließt.

Wenn lsDateien, die älter als 4 Tage sind, nicht aufgelistet werden, liegt dies wahrscheinlich daran, dass sie nicht oder nicht mehr vorhanden sind. Der lsBefehl des sftpoder lftpClients 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.

verwandte Informationen