[쉘 스크립트] 매주 같은 내용을 보내는 것이 귀찮아서 자동화해 보았다! ! !

개요



매주 토요일에도 허벅지 공부회를 개최하고 있지만, 시작되기 조금 전에 「zoom의 URL을 붙여, 메일 문장을 생각해 메일 송신」 이 작업이 귀찮다.
라고 일로, 정형분을 작성해 slack에 자동 송신할 수 있도록 하자! ! 라는 내용이 되어 있습니다.

■ 거친 흐름

1. 파일을 만들고 실행 권한 부여
2. slack에 Incoming Webhook 등록 및 설정
3.코드 작성(zoom URL + 메일문장)
4.cron 설정 (작업 스케줄링)

1. 파일을 만들고 실행 권한 부여



먼저 프로그램을 작성하는 파일을 작성합니다. 나는 토요일에 토요일에 실행하는 파일이므로 shellscript 디렉토리에 Saturday_execute라는 파일을 만들었습니다. (./shellscript/Saturday_execute 경로는 cron 설정에서 사용됩니다.)
이제 Saturday_execute에 권한을 부여합니다.

■ 디렉토리의 파일 정보 표시

/shellscript
$ ls -l      #ディレクトリ内のファイル情報を表示する
-rw-r--r-- 1 ファイルの所有者名 ファイルの所属グループ ファイルサイズ 更新日時 Saturday_execute(ファイル名)

ls 명령 사용법 및 옵션

표시된 정보에 대해 자세히 알아보기
- 왼쪽 3자 : 소유자의 액세스 권한
- 중앙 3자 : 소유 그룹의 액세스 권한
- 오른쪽 3자 : 소유자의 액세스 권한

-r: 로드 가능
- w: 쓰기 가능
- x: 실행 가능
- -: 액세스 권한 없음

소유자의 액세스 권한의 3문자째가 「-」이므로, 실행 권한이 없는 것을 알 수 있군요.
실행 권한이 없으므로 실행 권한을 부여합시다.

■ 실행 권한 부여
권한을 변경하려면 chmod 명령을 사용하십시오.
chmod 사용법 및 옵션

/shellscript
$ chmod u+x Saturday_execute    #chmod 権限設定 ファイルパス

명령 설명


기호
의미


u
소유자의 권한


x는 「■디렉토리의 정보를 표시한다」로 설명했습니다만, 실행 권한의 것이었습니다.

"Saturday_execute 파일의 소유자에게 실행 권한 부여"라는 의미입니다.

2. slack에 Incoming Webhook을 등록하고 설정



슬랙의 왼쪽 하단에 '앱 옆의 + 버튼'에서 Incoming Webhook을 검색합니다.

설정 추가를 클릭합니다.

알림을 보려는 채널을 선택하고 Incoming Webhook 통합 추가를 클릭합니다.

Webhook URL을 코드에 포함시켜 사용하기 때문에 복사해 둡니다.


이것으로 설정 완료! !

3.코드 작성(zoom URL + 메일문장)



Incoming Webhook URL 설정, slack 전송 채널, 전송 이름, 아이콘, 메시지를 설정하고 curl 명령으로 전송합니다.

/shellscript/Saturday_execute
#!/bin/bash

#################################################################################
# 土曜日の朝に勉強会参加用のURLをメール送信
# 概要 : Incoming WebhookのURL設定、slackの送信チャンネル、送信名、アイコン、メッセージを設定してcurlコマンドで送信する。
# 実行日 : 毎週土曜日 9時55分
#################################################################################

#slackの「勉強会」チャンネルへ通知(Incoming WebHooksのURL)
WEBHOOKURL="コピーしたIncoming WebhookのURL"

###############################################################
#固定文文字列の作成
###############################################################
#slack 送信チャンネル
CHANNEL="#勉強会"
#slack 送信名
BOTNAME="勉強会案内のお知らせ"
#slack アイコン
FACEICON=":snail:"  #なめくじのアイコンを使用しています。設定を変更したい場合は「https://www.webfx.com/tools/emoji-cheat-sheet/」を使用。
#メッセージ内容
MESSAGE="今からもくもく勉強会を始めます。\n 下記のURLよりお入りください。\n ■時間:10時〜17時\n <zoom URL>"

curl -X POST --data-urlencode "payload={\"channel\": \"${CHANNEL}\", \"username\": \"${BOTNAME}\", \"icon_emoji\": \"${FACEICON}\", \"text\": \"${MESSAGE}\" }" ${WEBHOOKURL}


코드 내용은 문자열을 변수에 저장하고 curl 명령으로 전송하고 있습니다! !

・기본 조작을 모르는 분은 아래를 참조!
쉘 스크립트의 기본 명령
・curl 커맨드의 사용법을 모르는 분은 아래를 참조!
curl 명령 옵션

4.cron 설정 (작업 스케줄링)



여기까지 할 수 있으면 남긴다는 「지정의 시간에 지정의 프로그램을 실행」하는 설정만! !
■ 작업 스케줄링은 지정된 시간에 지정된 프로그램을 자동으로 실행하는 기능. 아래의 2종류

· cron
- 정기적으로 자동 실행
- crond 및 crontab 명령으로 구성
・at
- 한 번만 자동 실행
- 표준 입력으로 스크립트 지정

이번 구현은 매주 알림이므로, cron으로 실시합니다.
그럼 「/shellscript/Saturday_execute」파일을 「매주 9시 55분」에 실행하도록(듯이) 설정해 갑시다.
$ crontab -e      #eオプションを付けて起動



i에서 인서트 모드로 전환하고 다음을 입력

crontab
# (分)(時)(日)(月)(曜日) 実行するコマンドのパス
55 9 * * sat bash ./shellscript/Saturday_execute    #毎週土曜日の9時55分「Saturday_execute」ファイルを実行

#入力後、escキー押して:wqで保存終了

esc 키를 눌러 : wq로 저장 종료하면 완성! ! !

이런 식으로 slack에게 통지가갑니다.


cron에 대한 자세한 내용을 모르는 분은 아래를 참조하십시오.

cron으로 정기 처리 수행
ron의 형식으로 요일 지정에 숫자를 사용하는 것을 그만두고 싶다

좋은 웹페이지 즐겨찾기