[쉘 스크립트] 매주 같은 내용을 보내는 것이 귀찮아서 자동화해 보았다! ! !
8898 단어 ShellScript리눅스자동화슬랙직업 스케줄러
개요
매주 토요일에도 허벅지 공부회를 개최하고 있지만, 시작되기 조금 전에 「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의 형식으로 요일 지정에 숫자를 사용하는 것을 그만두고 싶다
Reference
이 문제에 관하여([쉘 스크립트] 매주 같은 내용을 보내는 것이 귀찮아서 자동화해 보았다! ! !), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/satreu16/items/e8d9beb940a5fb45c7c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 프로그램을 작성하는 파일을 작성합니다. 나는 토요일에 토요일에 실행하는 파일이므로 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의 형식으로 요일 지정에 숫자를 사용하는 것을 그만두고 싶다
Reference
이 문제에 관하여([쉘 스크립트] 매주 같은 내용을 보내는 것이 귀찮아서 자동화해 보았다! ! !), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/satreu16/items/e8d9beb940a5fb45c7c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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의 형식으로 요일 지정에 숫자를 사용하는 것을 그만두고 싶다
Reference
이 문제에 관하여([쉘 스크립트] 매주 같은 내용을 보내는 것이 귀찮아서 자동화해 보았다! ! !), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/satreu16/items/e8d9beb940a5fb45c7c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ crontab -e #eオプションを付けて起動
# (分)(時)(日)(月)(曜日) 実行するコマンドのパス
55 9 * * sat bash ./shellscript/Saturday_execute #毎週土曜日の9時55分「Saturday_execute」ファイルを実行
#入力後、escキー押して:wqで保存終了
Reference
이 문제에 관하여([쉘 스크립트] 매주 같은 내용을 보내는 것이 귀찮아서 자동화해 보았다! ! !), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/satreu16/items/e8d9beb940a5fb45c7c5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)