Rsync, SFTP, RoboCopy

De Justine's wiki
Aller à la navigation Aller à la recherche

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>

  1. syncing folder src into dest:

rsync -avz ./src /dest

  1. syncing the content of src into dest:

rsync -avz ./src/ /dest

  1. 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 "*.*").