생일 알림

생일 알림

친구에게 생일 알림을 받기 위한 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을 실행합니다.

관련 정보