64 votes

Comment _MOVE_ des fichiers avec scp ?

Comment ne pas copier mais déplacer des fichiers d'un serveur à un autre (tous deux sous Linux) ?

man scp ne m'a rien donné d'utile. Je ne peux pas utiliser 'scp' puis 'rm' car je dois m'assurer que le fichier a bien été transféré. S'il y a une erreur pendant le transfert, le fichier ne doit pas être supprimé.

Je devrais peut-être utiliser l'exit code d'une manière ou d'une autre, mais comment ? De plus, il y a beaucoup de fichiers, et si le dernier fichier échoue, ce ne serait pas une bonne option pour conserver l'ensemble des fichiers transférés avec succès.

Peut-être qu'il y a autre chose que SCP ?

3voto

andrej Points 443

Si vous avez un serveur cible plus ancien comme moi, vous ne pouvez pas utiliser

--remove-source-files

mais vous devez utiliser

--remove-sent-files --protocol=29

à la place.

1voto

SCB Points 1298

J'ai pensé proposer une alternative à rsync que j'ai trouvée, lftp, car rsync nécessite un accès Shell que mon serveur sftp bloque.

lftp -e "mirror --Remove-source-files ./remote/path/ /local/path/; quit" remoteuser@remotehost:

Vous pouvez également transmettre le mot de passe si vous devez exécuter cette opération dans le cadre d'un traitement par lots ou d'une tâche cron (évidemment non sécurisé).

lftp --password hunter2 -e "mirror --Remove-source-files ./remote/path/ /local/path/; quit" remoteuser@remotehost:

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X