Copie et Édition de Fichiers Par SSH

Copie de Fichiers

En plus de pouvoir se connecter à distance avec ssh login@host il est également possible de copier des fichiers depuis et vers le serveur grâce a un dérivé de SSH : scp. Cette commande prend la source et destination comme parametre soit

1
scp fichierlocal login@host:chemindistant

pour envoyer un fichier et

1
scp login@host:chemindistant fichierlocal

pour récupérer un fichier

RemarqueCopie de Dossiers

scp peut également copier des dossiers et leurs contenus. Auquel cas il ajouter -r à la commande.

Copie Intelligente

scp est limitée dans ce qu'elle peut faire. Si vous copiez un dossier lourd avec beaucoup de fichiers déjà présents de l'autre côté, tous seront envoyés. Il existe une autre commande qui permet de faire cela mais qui est plus complexe : rsync. Cette nouvelle commande va vérifier la présence et le checksum des fichiers avant de les envoyer. Sa syntaxe est proche de scp mais nécessite plus d'options :

1
rsync -PIavz source destination

Ici, pas besoin de -r pour copier des dossiers.

Édition de Fichiers à Distance

Nous avons jusqu'à maintenant deux manières d'éditer le contenu des fichiers sur le serveur :

  • Se connecter en SSH et éditer avec nano (ou autre éditeur préféré) directement depuis SSH

  • Modifier les fichiers en local puis les pousser avec scp ou rsync

Une autre méthode combine les meilleur des deux monde : éditer sur votre machine et répercuter automatiquement les modifications sur votre VPS : sshfs.

sshfs est une commande à lancer sur votre machine personnelle comme suit

1
sshfs server:path localpath

ce qui aura pour conséquence de monter le contenu de server:path dans le dossier localpath. Vous pourrez alors éditer le contenu de localpath sur votre machine personnelle et ssh se chargera de synchroniser automatiquement sur le VPS.

Pour démonter le dossier localpath (ce qui est une bonne idée quand vous avez fini une session d'édition), il faut utiliser la commande

1
fusermount -u localpath