У меня очень странная проблема, которую я не могу понять.
Когда я выполняю скрипт Python, содержащий следующие строки, находясь внутри SSH-терминала (замазки), он работает нормально. Но в тот момент, когда я запускаю скрипт через crontab или даже nohup python myscript >/dev/null 2>&1&
, похоже, эти команды не выполняются.
subprocess.call('rsync -avr /path/to/folder/. --include "delta.*" --exclude "*" -e "ssh -o StrictHostKeyChecking=no -i /path/to/key.pem" ec2-user@'+server+':/path/to/folder/', shell=True)
local('ssh -t -o StrictHostKeyChecking=no -i /path/to/key.pem ec2-user@'+server+' "sudo /usr/bin/indexer -c /path/to/sphinx.conf --merge main delta --rotate"')
По сути, все, что описано выше, — это синхронизация папки с новыми обновлениями поисковой системы sphinx с удаленным сервером, затем вторая строка запускает удаленную команду ssh, чтобы заставить поисковую систему чередовать обновления в рабочей среде.
У меня установлена ткань (отсюда и локальная команда), но чтобы не создавать второй файл, я надеялся, что одна строка кода позволит мне выполнять команды sudo на удаленном сервере.
Кто-нибудь может мне помочь?