본문 바로가기
.etc

php, cron 이용하여 Slack Webhook 세팅 [Slack 스케쥴링,배치]

by 오늘의개발부 2020. 4. 21.
반응형

Slack Window PC. 
aws ec2 linux
php, cron 설치됨

 


1. Slack Web Hook Url 받기
좌측 아무 [체널]클릭 - 우측상단[Dtails] - [More] - [Add apps] - [Incoming WebHooks] 검색 및 선택 - [Add to Slack] 클릭 - Hook 받을 [체널] 선택 - [Add Incoming WebHooks integration] 클릭 

* slack 체널별로 세팅할 수 있다.
* Webhook Url을 기록해두자.

* 예시 : https://hooks.slack.com/services/ABCDEFGHTIUFJ/ABCDEFGHTIFJFJDJ/ABDNDFDSNALNFNDFDNFBD


2. PHP 파일 작성
- php 확인

whereis php

 

* 보통들 /usr/bin/php 에 있는 듯 함.

- 파일 작성

!#/usr/bin/php -q
<?php

    $hostname = "hostname";
    $username = "username";
    $password =  "password";
    $link = mysql_connect($hostname, $username, $password);

    mysql_select_db("database_name",$link);

    # 조회할 쿼리
    $res = mysql_query("select count(*) from USER");
    $row = mysql_fetch_array($res);
    $value = $row[0];

    $message  = "조회한 갯수 : ".$value;
    $slackdata = array(
        'text'        => $message
    );

    $slackurl = "https://hooks.slack.com/services/ABCDEFGHTIUFJ/ABCDEFGHTIFJFJDJ/ABDNDFDSNALNFNDFDNFBD";
    $data_json = json_encode($slackdata);
    $ch = curl_init($slackurl);

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($data_json))
    );

    $result = curl_exec($ch);

?>


- 테스트

/usr/bin/php 파일명.php 



3. crontab 설정

- cron 확인

crontab -l


- cron 편집

crontab -e 

내용을 아래와 같이 채운다. 의미는 다른 블로그에 정말 자세히, 그리고 많이 설명되어있다. cron은 간단히 스케쥴링 적용하기 좋아서 많이 사용한다.

* * * * * /usr/bin/php -e /var/www/html/test.php 


- 로그확인

tail -100f /var/log/cron 



반응형