Le problème est le suivant: je veux copier des fichiers depuis une machine distante.
Je cherche un moyen d'écrire un script shell qui se connecterait à la machine distante, obtiendrait l'emplacement du fichier stocké, une fois que je me déconnecte de l'emplacement du serveur distant et utilise scp depuis la machine locale avec l'emplacement obtenu pour copiez le fichier.
Plus précisément, je veux savoir comment à partir d'un script, je me connecterais à une machine distante, ferais des tâches sur cette machine. Déconnectez-vous et poursuivez l'exécution localement.
Vous pouvez écrire un script au format suivant:
Vous devez configurer les clés SSH pour qu'elles soient
command3
exécutées sans vous demander de mot de passe.la source
ssh user@remote command3
est en cours d'exécution,command4
ne peut pas commencerssh user@machine command3 &
Je suppose que vous avez déjà une idée de la façon dont vous allez identifier le fichier que vous souhaitez copier et que vous êtes en mesure ou avez déjà écrit un script ou un ensemble de commandes qui s'exécutera sur la machine distante qui effectue cette identification .
En outre, je suppose également que ces commandes impriment sur la sortie standard le chemin d'accès complet au fichier, ou le chemin d'accès relatif au fichier, par rapport au répertoire personnel de l'utilisateur SSH utilisé pour la copie. Dans mon exemple, le nom du script est "getfilepath.sh", bien qu'il ne doive pas être un script shell, il peut s'agir d'un autre exécutable ou même d'une série de commandes.
Dans le code ci-dessus, la notation "$ ()" est un moyen de capturer la sortie standard d'une commande en tant que variable shell. C'est assez standard, mais si vous utilisez un shell qui ne le comprend pas, vous pouvez à la place entourer la commande de "back-ticks", qui sont les marques d'accent à gauche de la touche 1 sur la plupart des claviers américains.
la source
il est peut-être possible de déclencher une tâche planifiée sur la machine distante qui fait tout le travail.
Cela vous empêcherait d'être connecté à la machine distante pendant que vous recherchez l'emplacement des fichiers que vous souhaitez copier.
Je fais ça:
la ligne de commande déclenche une tâche planifiée qui exécute un batchscript dans mon cas.
Meilleures salutations
la source