Автоматизируйте скрипт с помощью crontab, имея дело с конфигурацией Kerberos и pySpark. - PullRequest
0 голосов
/ 21 января 2019

Мне кажется, что это очень базовое задание crontab, и я хочу, чтобы оно запускало скрипт, который будет выполнять процесс python после получения билета с установленным Kerberos:

00 21 * * * source /opt/shareddir/.../bashrc_comun; /apps/users/username/script.sh >> logs/$(date +'\%Y\%m\%d').log 2>&1

Первоначально эта строка была:

30 21 * * 2 cd /apps/users/ && bash --login script.sh >> logs/name_$(date +'\%Y\%m\%d').log 2>&1

И эта строка в настоящее время работает для другого пользователя , я изменил ее, потому что она потерпит неудачу, когда я попытаюсь использовать ее

Содержание скрипта:

#!/bin/bash
now=$(date +"%m_%d_%Y")
kinit $USER@machine -kt ~/$USER.keytab
echo "-------------------------- $now ------------------------------"
python /apps/users/myuser/dir/python.py

Из-за этого сбоя я пытаюсь указать, какой каталог bash_profile правильно настроен для Pandas, версии Spark и т. Д., Так как я чувствовал, что это происходит из-за библиотек, и единственная причина, по которой я мог это сделать, была если он использовал неправильный путь.

Я также хочу отметить, что после первых дней появления библиотек и ошибок я чувствую, что правильно настроил keytab, и теперь он не показывает ошибок ни на экране, ни в каталоге журналов, независимо от того, какая версия cron я пытаюсь работать.

Чтобы добавить к этому, если я скопирую и вставлю эту строку в мой терминал, это работает. Я предполагаю, что это потому, что «Я» вошел в систему с моим собственным билетом Kerberos, поэтому он отличается от запуска из crontab, но, как я уже сказал, я могу заставить работать несколько версий из терминала, но когда я пытаюсь использовать их на cron ничего не работает.

...