web-dev-qa-db-fra.com

fichiers scp et supprimer des fichiers sur le répertoire distant

Je suis un noix unix, alors soyez patient :-)

J'ai un script qui scps un tas de fichiers vers un autre serveur.

Supposons qu'il s'agisse de z1.foo, z2.foo, etc.

Comment supprimer en toute sécurité des fichiers de la destination?

Merci.

20
Kapsh

Pour supprimer des fichiers de manière non interactive:

ssh hostname "rm -f z100.foo z200.foo"
23
Warner

Vous pouvez accomplir les deux tâches dans la même commande en utilisant l'indicateur --delete Sur rsync.

> ls -1 localdir/
a.foo
b.foo

> ssh remote-Host "ls -1 remotedir/"
c.foo

> rsync -a --delete localdir/ remote-Host:remotedir/

> ssh remote-Host "ls -1 remotedir/"
a.foo
b.foo

L'option --delete Supprime des fichiers du répertoire de destination qui n'existent pas sur la source. Il existe certains choix concernant le moment où les fichiers sont supprimés et comment gérer les fichiers exclus.

> man rysnc
...
--delete                delete extraneous files from dest dirs
--delete-before         receiver deletes before transfer (default)
--delete-during         receiver deletes during xfer, not before
--delete-after          receiver deletes after transfer, not before
--delete-excluded       also delete excluded files from dest dirs

La page de manuel contient également cet avertissement:

Cette option peut être dangereuse si elle n'est pas utilisée correctement! C'est une très bonne idée de commencer par utiliser le --dry-run option (-n) Pour voir quels fichiers seront supprimés pour vous assurer que les fichiers importants ne sont pas répertoriés.

6
Ladadadada

Si vous souhaitez définir le nom d'utilisateur et le numéro de port, vous pouvez procéder comme suit:

ssh [email protected] -p22 "rm -rf /home/amzad/test.php"
2
m82amjad