Я использую Ubuntu 16.04 LTS
У меня есть вопрос относительно создания файла CRL с OpenSSL из crontab один раз в месяц.
У меня есть сценарий под названием "gen-crl", который я могу запустить из / opt / vpn / openvpn-ca Под водой сценарий gen-crl находится в другом месте, потому что я создал для него мягкую символическую ссылку:
lrwxrwxrwx 1 root root 27 May 17 22:48 gen-crl -> /usr/share/easy-rsa/gen-crl
Сценарий gen-crl выглядит следующим образом:
#!/bin/sh
# revoke a certificate, regenerate CRL,
# and verify revocation
CRL="crl.pem"
if [ "$KEY_DIR" ]; then
cd "$KEY_DIR"
# set defaults
export KEY_CN=""
export KEY_OU=""
export KEY_NAME=""
# required due to hack in openssl.cnf that supports Subject Alternative Names
export KEY_ALTNAMES=""
# generate a new CRL -- try to be compatible with
# intermediate PKIs
$OPENSSL ca -gencrl -out "$CRL" -config "$KEY_CONFIG"
$OPENSSL crl -text -in "$CRL"
else
echo 'Please source the vars script first (i.e. "source ./vars")'
echo 'Make sure you have edited it to reflect your configuration.'
fi
Сценарий можно запустить, только если я наберу «исходные переменные» перед запуском сценария gen-crl.
Теперь я хочу запустить этот скрипт из cronjob, и теперь это становится для меня сложным, потому что перед запуском скрипта gen-crl нужно использовать «исходные переменные».
Я уже пробовал это в crontab в качестве теста и затем перезагрузил демон cron (перезагрузка службы cron):
*/1 * * * * root source /opt/vpn/openvpn-ca/vars; /opt/vpn/openvpn-ca/gen-crl
Но это не сработало, потому что по метке времени crl.pem я мог видеть, что он не изменилось.
Как я могу запустить этот сценарий gen-crl из crontab, также используя команду source?
@steeldriver; ты был прав; Теперь он работает.
Я пытался сделать это в crontab:
* / 1 * * * * root. / opt / vpn / openvpn-ca / vars && / opt / vpn / openvpn-ca / gen-crl
Но это не сработало. Поэтому я создал файл generate-crl
в файлах /etc/cron.daily
и chmod 755
соответственно. Затем я помещаю это в файл generate-crl
:
#!/bin/sh
cd /opt/vpn/openvpn-ca
. /opt/vpn/openvpn-ca/vars && /opt/vpn/openvpn-ca/gen-crl
Теперь он работает. Спасибо, что указали мне правильное направление!