Éviter d'écraser des fichiers lors de l'utilisation de Scp
J'ai été la copie de certains fichiers à l'aide de scp et je ne veux pas écraser les fichiers déjà présents.
Si j'ai été en utilisant la commande cp, je pense que cela peut être fait en utilisant cp-n.
Est-il une option similaire pour les scp, je suis allé à travers la documentation de la SCP et il semble y avoir pas une telle option.
Est rsync ou sftp le chemin à parcourir résoudre ce problème?
Plus D'Infos:
OS: Ubuntu 12.04
Vous devez vous connecter pour publier un commentaire.
rsync
semble être la solution à votre problème. Voici un exemple que j'ai reçu de ici:L'-une option permet de conserver les autorisations, la structure du répertoire, de la propriété, et les liens symboliques. Vous pouvez également spécifier l'une de ces options individuelle.
-v et -z signifie détaillé et compresser respectivement. Vous n'avez pas vraiment besoin d'eux alors qu'-z est agréable, si vous copiez des fichiers volumineux.
Je viens de trouver un simple hack. Marquer les fichiers existants en lecture seule.
chmod u-w srcfile; scp -p srcfile $USER@$host:$directory/
. À partir de la scp homme page:-p Preserves modification times, access times, and modes from the original file.
--ignore-existing
ne va pas écraser les fichiers sur le serveur distant ou un serveur de destination*.J'ai utilisé rsync dans le passé pour le présent, mais me suis retrouvé en essayant de récupérer à partir d'une boîte de windows avec CopSSH et pas de rsync 🙁 La suite a très bien fonctionné pour moi, en utilisant le fichier de tests afin d'éliminer les fichiers qui seront écrasés, et la génération de mutiple 'get' demandes à un sftp instance.
Juste au cas où d'autres ont besoin d'un non-rsync solution!
Juste pour compléter les autres solutions:
Pour un ascii/bin fichier, vous pouvez le faire avec:
cat source_file | ssh host "test ! -f target_file && cat > target_file"
rsync over ssh il devra être.
Je n'ai pas tester, mais peut-être d'abord mountung via
sshfs
et puis, à l'aide decp
fera l'affaire.