Est-il possible d'effectuer une opération shell à partir d'un script bash via un shell sécurisé?
Voici un exemple de pourquoi vous voudrez peut-être faire cela. Disons que vous avez un système d’exploitation unix simple que vous devez seulement compiler et exécuter, mais que vous voulez faire tout le développement sur une autre machine. Je souhaite écrire un script bash doté des fonctionnalités suivantes:
scp file to location on other machine
ssh to other machine
cd into correct directory
make
run program
scp results to file on original computer
exit ssh
Est-ce possible à distance? (Pardon le Pun: p)
Réponses:
Comme exemple direct de votre pseudo-code,
Peut-être souhaitez-vous éviter l'utilisation de fichiers temporaires; si vous pouvez utiliser l’entrée et la sortie standard pour cela, vous pourriez vous en tirer avec quelque chose comme:
... en supposant que vous
remotescriptname
puissiez lire une entrée standard et que vous obtenez le résultat sur une sortie standard. (Vous voudrez empêcher les commandes bruyantes commemake
de produire n'importe quelle sortie sur une sortie standard;make -s
est votre ami.)Vous remarquerez que vous pouvez avoir un extrait de script shell extrêmement complexe entre les guillemets simples. Il n’est pas nécessaire d’avoir un programme
remotescriptname
si vous préférez mettre la ligne de commande complète des commandes individuelles entre les guillemets simples, comme dans mon premier exemple; mais vous pouvez quand même le faire, car un script autonome est plus facile à déboguer et à maintenir.la source
Oui, c'est possible Par exemple:
Je vous suggère de créer un script côté distant qui effectuera les builds et scp en cas de succès, afin de minimiser le nombre de commandes distantes à envoyer. De plus, créer une clé RSA sans mot de passe vous simplifiera la vie.
MODIFIER:
Pendant que nous sommes sur le sujet, vous pourriez être intéressé par quelques-uns de ces programmes.
distcc
: Distribue les générations sur plusieurs machinesbuildbot
: Construisez automatiquement le code car il est archivé sur un nombre quelconque de machines / systèmes d’exploitation et exécutez des tests unitaires, etc.la source
ssh user1 @ server1 '/scripts/backup.sh' exécutera le script sur la machine distante. Vous pouvez simplement scp "backup.sh" à l’emplacement requis, appeler ssh et quitter
la source