Estoy conectado a un servidor sftp usando
sftp -i key.pem user@server
El servidor contiene registros y puedo enumerar registros de hasta 4 días de antigüedad usando ls
. El problema es que ls no parece poder recuperar registros de más de 4 días. Me pregunto cómo puedo enumerar todos los registros en el directorio y obtener su tamaño total.
Se ha hecho una pregunta similar sobre el tamaño.aquíy proporciona una solución usando du -hc
. Pero este comando no existe en mi servidor SFTP ni tengo acceso SSH. ¿Algunas ideas?
Respuesta1
lftp
tiene un du
comando y admite el sftp
protocolo:
lftp sftp://user@host
O para especificar la clave ssh a usar y omitir la solicitud de contraseña:
lftp -e 'set sftp:connect-program ssh -axi key.pem' sftp://user:@host
Y ejecute du
(o du -ba
para enumerar cada archivo junto con su tamaño en bytes, o du -ha
para usar sufijos) cuando sftp
se le solicite. Tenga en cuenta que se diferencia del du
comando de Unix en que proporciona el tamaño aparente en contraposición al uso del disco y no incluye el tamaño de los archivos del directorio.
Si ls
no enumera los archivos con más de 4 días de antigüedad, la explicación más probable es que no están o ya no están allí. El ls
comando del cliente sftp
o lftp
simplemente realizará unConsulta o serie de consultas "leer directorio" en el protocolo SFTPpara recuperar el contenido del directorio. Si el servidor no envía lo que hay allí y no tienes otra forma de acceder a los datos que no sea a través de SFTP, hay poco más que puedas hacer.