Использование команды Source из crontab для запуска скрипта

Я использую 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?

0
задан 18 May 2021 в 01:16

1 ответ

@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

Теперь он работает. Спасибо, что указали мне правильное направление!

0
ответ дан 28 July 2021 в 11:39

Другие вопросы по тегам:

Похожие вопросы: