J'écris un Script Shell où je dois supprimer un fichier sur une machine distante via un Script Shell.
Débit manuel:
ssh [email protected]
.. puis au domaine:
cd ./some/where
rm some_file.war
Comment accomplir cette tâche?
Vous pouvez passer au client ssh
une commande à exécuter à la place du démarrage d'un shell en l'ajoutant à la commande ssh.
ssh [email protected] 'rm /some/where/some_file.war'
Vous n'avez pas à cd
à un emplacement pour supprimer quelque chose tant que vous spécifiez le chemin complet, c'est donc une autre étape que vous pouvez ignorer.
La question suivante est l'authentification. Si vous exécutez cela, vous serez invité à entrer un mot de passe. Si vous ne souhaitez pas entrer cela de manière interactive, vous devez configurer l'authentification publickey.
Si vous souhaitez supprimer un fichier distant à l'aide de Sudo, vous devez exécuter quelque chose comme ceci:
ssh -tt user@Host 'stty raw -echo; Sudo rm /path/to/file' < <(cat)
Détails .
La commande ssh possède un paramètre de commande (dernier paramètre de la commande) que vous pouvez utiliser pour exécuter des commandes à distance.
Configurez les clés sans mot de passe, puis ajoutez la commande dans le cadre de la commande ssh. Voir: http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/