Подтвердить что ты не робот

Выполнение полных команд через удаленный ssh

Возможный дубликат:
как использовать ssh для запуска оболочки script на удаленном компьютере?

Я пытаюсь сделать bash script, который запускается на моем ежедневном задании 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 one?

4b9b3361

Ответ 2

Запишите script, скопируйте его на удаленный компьютер и из ssh запустите только script.

Ответ 3

Другим обходным решением является использование python. Существует модуль под названием pexpect, который может решить вашу проблему и даже более сложный сценарий.