bffdf0ec6c
new file: documentation/LLM_Information.md modified: main_dc/certbot/scripts/checkRenewCerts.sh renew checkRenewCerts replace line with expirY_unix parse date formate
112 lines
4.1 KiB
Bash
112 lines
4.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Функция проверки локального сертификата
|
|
check_local_cert() {
|
|
local cert_file=$1
|
|
local days_to_check=$2
|
|
|
|
if [[ ! -f "$cert_file" ]]; then
|
|
echo "Ошибка: Файл сертификата '$cert_file' не найден."
|
|
return 1
|
|
fi
|
|
|
|
# Получаем дату истечения сертификата
|
|
expiry_date=$(openssl x509 -in "$cert_file" -noout -dates | grep "notAfter=" | cut -d= -f2)
|
|
|
|
if [[ -z "$expiry_date" ]]; then
|
|
echo "Ошибка: не удалось получить дату истечения сертификата."
|
|
return 1
|
|
fi
|
|
|
|
# Преобразуем дату истечения в UNIX-время
|
|
# expiry_unix=$(date -d "$expiry_date" +%s)
|
|
expiry_unix=$(date -D "%b %d %H:%M:%S %Y %Z" -d "$expiry_date" +%s 2>/dev/null)
|
|
|
|
# Текущая дата в UNIX-времени
|
|
current_unix=$(date +%s)
|
|
|
|
# Вычисляем разницу между текущей датой и датой истечения
|
|
days_left=$(( ($expiry_unix - $current_unix) / 86400 ))
|
|
|
|
if ((days_left <= 0)); then
|
|
echo "Сертификат '$cert_file' истек!"
|
|
return 0
|
|
elif ((days_left <= days_to_check)); then
|
|
echo "Предупреждение: Сертификат '$cert_file' истекает через $days_left дней."
|
|
return 0
|
|
else
|
|
echo "Сертификат '$cert_file' действителен ещё $days_left дней."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Проверка сертификата и запуск соответствующего сценария обновления
|
|
check_first_cert() {
|
|
local first_cert="/etc/letsencrypt/live/yalarba.ru/cert.pem"
|
|
local first_script="/opt/renewYalarbaCert.sh"
|
|
local warning_days=5
|
|
|
|
if check_local_cert "$first_cert" "$warning_days"; then
|
|
echo "Запускаю обновление сертификата yalarba.ru"
|
|
"$first_script"
|
|
fi
|
|
}
|
|
|
|
# Проверка сертификата и запуск соответствующего сценария обновления
|
|
check_second_cert() {
|
|
local second_cert="/etc/letsencrypt/live/valitovgaziz.ru/cert.pem"
|
|
local second_script="/opt/renewValitovGazizCert.sh"
|
|
local warning_days=5
|
|
|
|
if check_local_cert "$second_cert" "$warning_days"; then
|
|
echo "Запускаю обновление сертификата valitovgaziz.ru"
|
|
"$second_script"
|
|
fi
|
|
}
|
|
|
|
# Проверка сертификата и запуск соответствующего сценария обновления
|
|
check_third_cert() {
|
|
local third_cert="/etc/letsencrypt/live/easysite102.ru/cert.pem"
|
|
local third_script="/opt/renewValitovGazizCert.sh"
|
|
local warning_days=5
|
|
|
|
if check_local_cert "$third_cert" "$warning_days"; then
|
|
echo "Запускаю обновление сертификата easysite102.ru"
|
|
"$third_script"
|
|
fi
|
|
}
|
|
|
|
# Проверка сертификата и запуск соответствующего сценария обновления
|
|
check_forth_cert() {
|
|
local forth_cert="/etc/letsencrypt/live/xn--80abahjtcfl5d0a8di.xn--p1ai/cert.pem"
|
|
local forth_script="/opt/renewBegushiyBashkir.sh"
|
|
local warning_days=5
|
|
|
|
if check_local_cert "$forth_cert" "$warning_days"; then
|
|
echo "Запускаю обновление сертификата для бегущийбашкир.рф"
|
|
"$forth_script"
|
|
fi
|
|
}
|
|
|
|
check_fifth_cert() {
|
|
local fifth_cert="/etc/letsencrypt/live/begushiybashkir.ru/cert.pem"
|
|
local fifth_script="/opt/renewBegushiyBashkirLatin.sh"
|
|
local warning_days=5
|
|
|
|
if check_local_cert "$fifth_cert" "$warning_days"; then
|
|
echo "Запускаю обновление сертификата для begushiybashkir.ru"
|
|
"$fifth_script"
|
|
fi
|
|
}
|
|
|
|
# Основная функция для последовательной проверки обоих сертификатов
|
|
main() {
|
|
check_first_cert
|
|
check_second_cert
|
|
check_third_cert
|
|
check_forth_cert
|
|
check_fifth_cert
|
|
}
|
|
|
|
# Запуск основной функции
|
|
main |