On peut utiliser la commande scp pour copier en toute sécurité des fichiers entre les hôtes du réseau. Il utilise ssh pour le transfert de données et l'authentification. La syntaxe typique est :
scp file1 user@host:/path/to/dest/ scp -r /path/to/source/ user@host:/path/to/dest/
Je ne pense pas que vous puissiez filtrer ou exclure des fichiers lorsque vous utilisez la commande scp. Cependant, il existe une bonne solution pour exclure le fichier et le copier en toute sécurité à l'aide de ssh. Cette page explique comment filtrer ou exclure des fichiers lors de la copie récursive d'un répertoire à l'aide de scp.
La syntaxe est :
rsync av -e ssh --exclude='*.out' /path/to/source/ user@hostB:/path/to/dest/
Ici :
Dans cet exemple, copiez récursivement tous les fichiers du répertoire ~/virt/, mais excluez tous les fichiers *.new :
$ rsync -av -e ssh --exclude='*.new' ~/virt/ root@centos7:/tmp
Exemple de sortie :
Fichiers d'exclusion Scp mais en utilisant la commande d'exclusion rsync
Si rsync n'est pas trouvé sur le serveur distant, la commande rsync échouera. Dans ce cas, essayez d'utiliser la commande scp suivante, qui utilise la correspondance de modèles de shell bash dans le répertoire courant (elle ne fonctionne pas avec l'option -r) :
$ ls
Exemple de sortie :
centos71.log centos71.qcow2 centos71.qcow2.new centos71.v2.qcow2.new meta-data user-data
Copiez tout ce qui se trouve dans le répertoire courant sauf .new :
$ shopt -s extglob $ scp !(*.new) root@centos7:/tmp/
Exemple de sortie :
centos71.log 100 % 4262 1.3MB/s 00:00 centos71.qcow2 100 % 836MB 32.7MB/s 00: 25 meta-data 100 % 47 18.5KB/s 00:00 user-data 100 % 1543 569.7KB/s 00:00
Pour plus d'informations, consultez les pages de manuel suivantes :
$ rsync -av -e ssh --exclude='*.new' ~/virt/ root@centos7:/tmp
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!