Dupliquer possible:
[.____] Comment utiliser SSH pour exécuter un script shell sur une machine distante?
J'essaie de créer un script Bash qui fonctionne sur les travaux de cron quotidiens de mon serveur distant pour vous connecter automatiquement via SSH dans une autre boîte Unix, exécutez quelques commandes, puis de partir.
#!/bin/bash
ssh machinehost.com -l admin -p 2222 "/usr/bin/find /share/Public/backups/set0 -mtime +14 | xargs rm -f;
/usr/bin/find /share/Public/backups/set1 -mtime +4 | xargs rm -f;
/usr/bin/find /share/Public/backups/set2 -mtime +3 | xargs rm -f;
/usr/bin/find /share/Public/backups/set3 -mtime +21 | xargs rm -f;
/usr/bin/find /share/Public/backups/set4 -mtime +2 | xargs rm -f;
/usr/bin/find /share/Public/backups/set5 -mtime +2 | xargs rm -f;
"
Je dois modifier mon code existant actuel pour faire quelque chose un peu plus compliqué avant chaque commande comme
if [ $(ls /share/Public/backups/set1 -1 | wc -l ) -gt 4 ] then run above command
fi
Comment allez-y exécuter cette commande sur la machine SSH distante et non sur mon cron local?
Essayez d'écrire votre script Bash localement et appelez:
ssh [email protected] 'bash -s' < local_script.sh
Écrivez un script, copiez-le sur la machine distante et de SSH Exécuter uniquement ce script.
Une autre solution de contournement est d'utiliser Python. Il y a un module appelé PEXPPECT qui peut résoudre votre problème, et encore plus compliqué de scénario.