Rsync, SFTP, RoboCopy
A propos de SCP...
Avec la sortie d'OpenSSH 8.0, des failles dans la commande SCP ont été corrigées. Cependant, cette commande est qualifiée de "rigide", et "vieillissante". Pourquoi ne pas apprendre ses alternatives ?
Rsync
rsync (pour remote synchronization ou synchronisation à distance), est un logiciel de synchronisation de fichiers. Il est fréquemment utilisé pour mettre en place des systèmes de sauvegarde distante.
rsync travaille de manière unidirectionnelle c'est-à-dire qu'il synchronise, copie ou actualise les données d'une source (locale ou distante) vers une destination (locale ou distante) en ne transférant que les octets des fichiers qui ont été modifiés.
De base, Rsync utilise SSH.
Utilisation
rsync source/ dest
<source>
- syncing folder src into dest:
rsync -avz ./src /dest
- syncing the content of src into dest:
rsync -avz ./src/ /dest
- Un exemple plus complexe
rsync -avP -e "ssh -i ~/.ssh/id_backup -p 22" . justine@192.168.1.207:/data </source>
Options
Transfer options <source> -z, --compress -n, --dry-run -P, --partial / --progress # allows resuming of aborted syncs </source>
Display options <source> -q, --quiet -v, --verbose -h, --human-readable </source>
Skipping options <source> -u, --update # skip files newer on dest -c, --checksum # skip based on checksum, not mod-time & size </source>
Backup options <source> -b, --backup # backup with suffix
--suffix=SUFFIX # default ~ without --backup-dir --backup-dir=DIR
</source>
Include options <source> --exclude=PATTERN --include=PATTERN
--exclude-from=FILE --include-from=FILE --files-from=FILE # read list of filenames from FILE </source>
Archive options <source> -a, --archive # archive (-rlptgoD)
-r, --recursive -l, --links # copy symlinks as links -p, --perms # preserve permissions -t, --times # preserve times -g, --group # preserve group -o, --owner # preserve owner -D # --devices --specials --delete # Delete extra files </source>
SFTP
sftp peut être utilisé pour du transfert de fichiers en mode sécurisé.
sftp mlx@M1.foo.org sftp>
On obtient un prompt, ici le système ne m'a pas demandé de m'authentifier. Pour avoir une liste des commandes, utiliser "help".
sftp> help Available commands: cd path Change remote directory to 'path' lcd path Change local directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' help Display this help text get remote-path [local-path]Download file lls [ls-options [path]] Display local directory listing ln oldpath newpath Symlink remote file lmkdir path Create local directory lpwd Print local working directory ls [path] Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory put local-path [remote-path]Upload file pwd Display remote working directory exit Quit sftp quit Quit sftp rename oldpath newpath Rename remote file rmdir path Remove remote directory rm path Delete remote file symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help
RoboCopy
RoboCopy est l'équivalent Windows de RSync, il existe depuis NT 4.0 et est bien implémenté. Ile permet de recopier des arborescences de dossiers / fichiers. Son utilisation est la suivante :
------------------------------------------------------------------------------- ROBOCOPY :: Copie de fichiers robuste pour Windows ------------------------------------------------------------------------------- Syntaxe :: ROBOCOPY source destination [fichier [fichier]...] [options] source :: répertoire source (lecteur:\chemin ou \\serveur\partage\chemin). destination :: rép. de destination (lecteur:\chemin ou \\serveur\partage\chemin). fichier :: fichier(s) à copier (noms/caractères génériques : valeur par défaut "*.*").