Chcę uruchomić program na wielu zdalnych hostach
programy te mogą działać kilka godzin i wymagają uprawnień roota
Wysłałem program do tych hostów zdalnych
Mogę tylko ssh do tych maszyn z moją nazwą użytkownika
ale z moją nazwą użytkownika mogę sudo
bez hasła
teraz chcę napisać skrypt automatyzacji, aby uruchomić je na tych hostach
zasadniczo potrzebuję czegoś takiego:
for remote_host in host_list:
run the program on remote_host
a następnie skrypt kończy działanie. próbowałem
ssh -t usr@remote_host "sudo /home/usr/program"
ale to zablokuje moją powłokę, dopóki program nie zakończy pracy więc spróbowałem
ssh -t usr@remote_host "sudo /home/usr/program" &
to nie działa, używam ps -ef
sprawdzić i nie znaleźć żadnego procesu
Próbowałem również python paramiko
, ale zawiodło https://stackover.com/questions/16085502/run-remote-program-with-root-priviledge-using-paramiko-ssh-channel
Chcę również rejestrować wszystkie dane wyjściowe podczas uruchamiania programu
czy ktoś może podać jakieś rozwiązania? dzięki
bash -c
”? Nie „sudo nohup /home/user/program …
„Bądź tak dobry?&
od kojarzenia znohup
.-t
opcja jest konieczna, nawet jeśli nie chcesznohup.out
plik do utworzenia.