친구에게 생일 알림을 받기 위한 bash 쉘 스크립트 작성
생각하다
Birthday Date Friend's name
08-02-2014 : Prashant
08-15-2014 : prabhat
09 -16 -2014 : Aks
12-30-2014 : Bks
미혼 생일에는 사용할 수 있습니다crontab
Step 1: create a file vi birthday.sh
Step 2:
echo " Birthday alerts: today is Prashant 's Birthday Wish!! him " |mail -s "b-alert" [email protected]
3단계: 실행 권한 부여
chmod u+x birthday.sh
4단계: cron을 사용하여 birthday.sh 스크립트 실행
00 00 02 08 * /home/user/birthday.sh
하지만 무엇을 해야 할까요? 여러 생일에 대한 알림을 받으려면 각 생일에 대한 스크립트를 만들 수 있지만 그렇게 하지 않는 것이 더 낫다고 생각합니다. 난 그냥 스크립트를 받고 싶어
생일이 오면 모든 생일 알림
답변1
요청에 따라 아래는 작동하는 bash 스크립트입니다. 각 사용자 "레코드"에 "=" 기호 필드 구분 기호를 사용하고 있으며 공백은 레코드 구분 기호입니다. 완전성을 위해 가상의 이메일을 추가했음을 참고하시기 바랍니다.
#
!/bin/bash
#
DATE=$(date '+%m-%d-%Y')
bdays='[email protected] [email protected] [email protected] [email protected]'
for i in $bdays
do
bday=$(echo $i | awk -F= '{print $1}')
name=$(echo $i | awk -F= '{print $2}')
email=$(echo $i | awk -F= '{print $3}')
[[ $DATE = $bday ]] && {
echo " Birthday alerts: today is $name 's Birthday Wish!! " |mail -s "b-alert" $email
}
done
파일에서 생일을 읽으려면 bdays='....'를 다음으로 바꾸십시오.
bdays=$(cat Birthday)
"생일" 파일 내용은 모두 한 줄에 동일한 형식으로 표시됩니다.
[email protected] [email protected] [email protected] [email protected]
답변2
쉘 스크립팅이 필요한 작업이라면 다른 답변을 확인하십시오. 그러나 생일이나 기타 정기적인 알림을 받고 싶다면 calendar
대부분의 Unix 시스템에 포함되어 있는 이 명령을 사용할 수 있습니다.
리눅스의 경우:
$ mkdir ~/.calendar
$ echo -e "Jul 30\tMother's Birthday" >> ~/.calendar/calendar
$ echo -e "08/02\tPrasant's Birthday" >> ~/.calendar/calendar
$ echo -e "Aug 15\tPrabhat's Birthday" >> ~/.calendar/calendar
$ # note that you need to have a tab between the date and the event description
$ calendar
Jul 30 Mother's Birthday
당신은 넣을 수 있습니다
0 2 * * * calendar|mail -s "b-alert" [email protected]
crontab에서 매일 아침 오전 2시에 실행하십시오(또는 명령의 출력이 메일로 전송되므로 그냥 ) calendar
. cron
일부 시스템에서는 calendar
기본적으로 매일 아침 모든 사람에 대해 실행됩니다.
로그인할 때마다 calendar
실행할 항목을 입력 할 수 있습니다.~/.bash_profile
답변3
교활한 의사 코드 답변은 다음과 같습니다. 원하는 언어로 이 작업을 수행할 수 있습니다.
"생일"이라는 일관된 형식의 날짜가 포함된 파일입니다.
today=GET_TODAYS_DATE()
While not end of file birthdays
do
read from file DATE NAME
if today=DATE then
mail address with "Today is NAME's birthday"
endif
endwhile
매일 자정 1분 후에 cron을 실행합니다.