Изпълнение на пълни команди чрез отдалечен ssh

Възможен дубликат:
как да използвам ssh за изпълнение на shell скрипт на отдалечена машина?

Опитвам се да направя bash скрипт, който да се изпълнява на ежедневните cron задания на моя отдалечен сървър, за да влиза автоматично през ssh в друга unix кутия, да изпълни няколко команди и след това да напусне.

#!/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;
                               "

Проблемът, който имам, е, че трябва да модифицирам текущия си съществуващ код, за да направя нещо малко по-сложно преди всяка команда като

if [ $(ls /share/Public/backups/set1 -1 | wc -l ) -gt 4 ] then run above command
fi

Как да изпълня тази команда на отдалечената ssh машина, а не на моя локален cron?


person Nicarlo    schedule 13.08.2011    source източник
comment
@Wooble Другият въпрос беше въпросът за начин за стартиране на скрипт на обвивка на отдалечен компютър, където това е решение на проблема за този плакат. Мисля, че въпросът е достатъчно различен.   -  person mopsled    schedule 13.08.2011


Отговори (3)


Опитайте да напишете своя bash скрипт локално и да извикате:

ssh [email protected] 'bash -s' < local_script.sh

(Намерено в дискусията тук)

person mopsled    schedule 13.08.2011

Напишете скрипт, копирайте го на отдалечената машина и от ssh стартирайте само този скрипт.

person Tomas    schedule 13.08.2011
comment
Това е подходът, който използвам на моите сървъри. - person djhaskin987; 13.08.2011

Друго решение е да използвате python. Има модул, наречен pexpect, който може да реши вашия проблем и дори по-сложен сценарий.

person Kit Ho    schedule 13.08.2011