У меня есть python скрипт, который вызывает скрипт оболочки следующим образом:
p = subprocess.Popen([/path/to/script.sh], stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
output, error = p.communicate()
expect
скрипт:
#!/usr/bin/env expect
set username "user"
set password "pass"
cd /my/repo
spawn /usr/bin/git pull origin master
expect "Username"
send "$username\r"
expect "Password"
send "$password\r"
interact
Когда я запускаю py-скрипт вручную, он работает нормально, Я вижу вывод вроде:
Username for repo: user
Password for repo:
* branch master -> FETCH_HEAD
Already up to date.
Но когда я запускаю свой скрипт через cron, я вижу это:
Username for repo: user
Password for repo:
И ничего не происходит. Что я делаю не так?
Мой файл / etc / crontab:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
10 * * * * my_username /usr/bin/python3 /path/to/python/script.py