![사용자 이름과 인증서 만료 날짜를 지정하여 사용자에게 이메일 알림을 보냅니다.](https://linux55.com/image/149986/%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%9D%B4%EB%A6%84%EA%B3%BC%20%EC%9D%B8%EC%A6%9D%EC%84%9C%20%EB%A7%8C%EB%A3%8C%20%EB%82%A0%EC%A7%9C%EB%A5%BC%20%EC%A7%80%EC%A0%95%ED%95%98%EC%97%AC%20%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%20%EC%9D%B4%EB%A9%94%EC%9D%BC%20%EC%95%8C%EB%A6%BC%EC%9D%84%20%EB%B3%B4%EB%83%85%EB%8B%88%EB%8B%A4..png)
인증서가 곧 만료되는 사용자에게 이메일 알림을 보내고 싶습니다. 아래 코드를 사용하면 MySQL에서 선택한 모든 이메일 주소로 이메일을 보낼 수 있습니다. 알림을 보낼 이메일과 만료일을 모두 선택하고 싶습니다.
#!/bin/bash
EMAIL_ADDRESS="mysql -N -uUser -pPassword database -e \
"SELECT email FROM table WHERE DATEDIFF(date_expiration, CURDATE()) <=30 AND date_expiration > CURDATE()"
echo "Hello! The expiration date of your certificate is [date_expiration] ,please follow the procedure to renew it" \
| mailx -A gmail -s "Certificate expiration date" $EMAIL_ADDRESS
답변1
#!/bin/bash
while read -r N E D ; do
echo "Hello $N, The expiration date of your certificate for $D is nearing, please renew it" \
| mailx -A gmail -s "Certificate expiration date" "$N <$E>"
done < <(mysql -N -uUser -pPassword database -e \
"SELECT name, email, domain FROM users, certs WHERE domain.user=user.id and DATEDIFF(date_expiration, CURDATE()) <=30 AND date_expiration > CURDATE()" )