Je dois me connecter à distance à une passerelle (fonctionnant sur la plate-forme Linux), à l'intérieur de laquelle j'ai quelques fichiers exécutables (signingModule.sh
et taxModule.sh
). Maintenant, je veux écrire un script sur mon bureau qui se connecte à cette passerelle et exécute signingModule.sh
et taxModule.sh
dans deux terminaux différents.
J'ai écrit le code ci-dessous:
ssh [email protected] #to connect to gateway
sleep 5
cd /opt/swfiscal/signingModule #path of both modules
./signingModule #executable
mais grâce à ce code, je peux connecter ma passerelle, mais rien ne se passe après la connexion à la passerelle.
2ème code:
source configPath # file where i have given path of both the modules(configPath is placed in local machine)
cd $FCM_SCRIPTS # variable in which i have stored the path of modules
ssh [email protected] 'sh -' < signingModule #to connect and run one module (signingModule is placed in remote machine)
En sortie de ceci, je reçois: source: configPath: file not found
S'il vous plaît, aidez-moi à résoudre ce problème. Merci d'avance.
Remarque:
L'erreur que vous avez provoquée signifie que le fichier configPath
n'existe pas dans le dossier où vous avez exécuté la commande source configPath
.
En admettant que:
configPath
contient les instructions: #!/bin/bash export FCM_SCRIPTS=/path/on/remote/machine
/path/on/remote/machine
se trouve un fichier exécutable signingModule
configPath
se trouve dans le dossier /path/on/local/machine
Si ces hypothèses sont vraies, vous devriez créer sur la machine locale un script simple /path/on/local/machine/remoteExecution.sh
:
#!/bin/bash
cd $FCM_SCRIPTS
./signingModule
et essaye:
cd /path/on/local/machine
ssh [email protected] 'bash -s' < <(cat configPath remoteExecution.sh)
où l'option -s
signifie que les commandes sont lues à partir de l'entrée standard.