J'utilise scp pour copier des trucs vers un emplacement distant. Mais parfois scp ne fonctionne pas comme prévu, j'ai constaté que parfois la copie ne se termine pas correctement (peut-être lorsque j'ai ajouté de nouveaux fichiers dans le dossier que je copie).
Je veux donc d'abord supprimer le dossier distant, puis faire la copie pour m'assurer d'avoir exactement ce dont j'ai besoin.
Existe-t-il d'autres commandes comme scp (par exemple srm ou smv)? Ou existe-t-il un moyen de supprimer les dossiers et fichiers distants?
ssh you@host bash -c "command1;command2;command3; commandN"
.Rsync copiera un chemin / arbre entier et vérifiera les fichiers déjà à destination et ne prendra pas la peine de les copier s'ils sont inchangés. Si vous utilisez l'option --delete, elle supprimera tous les fichiers qui se trouvent à la destination qui ne sont plus à la source. Cela fonctionne sur ssh
la source
rsync -avz -e shh root@location:/path/to/dest /path/from/host
Mais elle échoue après avoir entré le mot de passe en disantsh: rsync: not found
. Est-ce à dire que rsync doit exister sur le PC distant? Merci!Si votre serveur SSH distant prend en charge le sous-système SFTP (la plupart le font, sauf s'il a été explicitement désactivé), vous pouvez utiliser le
sftp
shell (ou tout autre client SFTP ) pour manipuler des fichiers et des répertoires sur le serveur distant.Malheureusement, une chose que le
sftp
shell de base ne gère apparemment pas est la suppression récursive du répertoire; pour supprimer un répertoire, vous devez d'abord supprimer tout son contenu. Cependant, la plupart des autres clients (en particulier ceux graphiques) le prennent généralement en charge.(Vous ne mentionnez pas votre système d'exploitation local, mais s'il s'agit de Linux, vous pouvez utiliser votre gestionnaire de fichiers natif comme client SFTP GUI en le pointant sur une URL comme sftp: // user @ host / path /. Pour Windows, WinSCP est un client décent et FileZilla est une bonne solution multiplateforme.)
la source
Pour vider un répertoire distant (/ local), utilisez rsync comme ceci:
Soyez prudent - il supprime tout en dessous de la destination spécifiée!
la source
ssh server rsync --version
oussh -v server rsync --version
trouver la raison.Comme alternative, monter le répertoire distant dans un répertoire local, puis le supprimer avec
rm -r /path_to_directory_to_remove
et enfin démonter le répertoire fait l'affaire.Réponse originale ici: /programming//a/24650511/973919
la source