Je veux copier sur .jpg
et .png
fichiers avec scp
, mais il y a des fichiers avec des extensions différentes dans le même dossier à partir duquel je copie. Je fais ce qui suit:
scp [email protected]:/folder/*.{jpg,png} .
On me demande d'entrer mon mot de passe pour chaque type d'extension. Existe-t-il un moyen de procéder de telle manière que je ne saisisse mon mot de passe qu'une seule fois?
Il suffit de le remplacer par:
scp [email protected]:'/folder/*.{jpg,png}' .
Veuillez noter la paire de guillemets simples. Dans votre cas, votre shell local évalue l'expression, la transformant vraiment en:
scp [email protected]:/folder/*.jpg [email protected]:/folder/*.png .
d'où les deux mots de passe demandés. Dans cette solution, la paire de guillemets simples la protège de l'évaluation par le shell local, c'est donc le shell distant appelé par (le distant) scp qui évalue l'expression.
Mieux vaut utiliser rsync pour copier les opérations entre les serveurs.
rsync -avzh user@remoteip:/path/*.jpg [email protected]:/path/*.png localserverpath
En utilisant rsync, il ne demandera le mot de passe qu'une seule fois.
Également dans rsync lors du transfert du fichier, il vérifiera l'emplacement cible si le fichier existe ou non et vérifiera également si le contenu est identique ou non à l'emplacement source et à l'emplacement cible.
Si le fichier existe également à l'emplacement cible et que le contenu est également le même, il ne copiera pas ce fichier. Il copiera uniquement les fichiers qui n'existent pas à l'emplacement cible, ce qui réduit le temps de traitement.
rsync est souvent utilisé comme outil de sauvegarde incrémentielle.