그닥 쓸모는 없는 최근글 검색 및 텔레그램 알림 스크립트
원하는 사이트/rss 로 사이트 게시글을 불러오고
원하는 검색어로 검색 및 텔레그램으로 알림 주는 스크립트입니다.
#에.. 정작 서버포럼이 안되는군요 ....
쉘 스크립트를 모르니까 빡세네요 ㄷㄷ;;
수정해서 사용할 분 사용하시라고 설정 주석 달아놨습니다.
일단 제가 원하는 기능은 작동은 합니다만 ㅋㅋ;; 다른분도 작동한다는 보장은 못합니다. 저도 몰라요ㅋㅋ
#!/bin/bash
###################################################################################################################
#설정할곳
SEARCH=#원하는 검색어(영어)
SEARCH2=#[원][하][는][검][색][어] #한글
SITE_TO_SEARCH=#site/rss
OLD_LIST_PATH=#예전검색어담길경로.txt
NEW_RSS_PATH=#TEMP_PATH.txt
CHAT_ID=#텔레그램 채팅방ID
TELEGRAM_TOKEN=#텔레그램토큰
####################################################################################################################
touch $OLD_LIST_PATH
touch $NEW_RSS_PATH
NEW_RSS=$(curl ${SITE_TO_SEARCH} | iconv -f euc-kr -t utf-8 | grep -i "^<title>" | tr -d "<title>" | tr -d "/" | grep -i "${SEARCH}" )
#CURL 로 사이트 rss.php(?) 다운 | 한국어 utf8 변환 | <title> 부분 삭제 | 원하는 검색어 검색
NEW_RSS=$(curl ${SITE_TO_SEARCH} | iconv -f euc-kr -t utf-8 | grep -i "^<title>" | tr -d "<title>" | tr -d "/" | egrep --color "${SEARCH2}" )
echo -e "$NEW_RSS\n" >> ${NEW_RSS_PATH}
echo -e "$NEW_RSS\n" > ${NEW_RSS_PATH}
OLD_LIST=$(<${OLD_LIST_PATH})
NEW_RSS=$(<${NEW_RSS_PATH})
NEW_LIST=$(diff -iw $OLD_LIST_PATH $NEW_RSS_PATH | grep -A1 ">" | sed 's/^.//')
echo -e "${NEW_LIST}\n">> ${OLD_LIST_PATH}
echo "NEW_RSS=${NEW_RSS}"
echo "OLD_LIST=${OLD_LIST}"
echo "NEW_LIST=${NEW_LIST}"
wget --post-data="chat_id=${CHAT_ID}&text=${NEW_LIST}" https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage
고수분들 틀린 부분 지적 환영합니다.
#!/bin/bash
#원하는 사이트에서 title만 따고 검색어로 검색을 하여 new_rss로 저장합니다.
NEW_RSS=$(curl 원하는 사이트 주소 | iconv -f euc-kr -t utf-8 | grep -i "^
" | tr -d "" | tr -d "/" | grep -i "검색어" )
#기존 noti 했던 것들을 저장해두는 list 입니다.
OLD_LIST=$(
#기존 old_list와 new_rss를 비교하고, new_rss에 추가된 값( > 이하의 값을 new_list에 저장합니다.)
NEW_LIST=$(comm -1 $OLD_LIST $NEW_RSS | sed -n '/>/p')
if 차이가 나타난 NEW_LIST 가 있는 경우만
#텔레그램으로 원하는 메시지를 보냅니다.
wget --post-data="chat_id={chat_id}&text=Synology_message_["$new_list"]" https://api.telegram.org/bot{api_token}/sendMessage.
#old_list에 new_list의 값을 저장하여 다음에는 알리지 않게 합니다.
echo $NEW_RSS | tee -a $OLD_LIST
fi
이렇게 해야 NEW_LIST 가 존재하는 경우만 텔레그램이 전송될것 같습니다.
그리고 처음 초기값으로 OLD_LIST.txt 를 가져오는부분이 있는데,
지금까지 전송했던 검색어가 다 담겨 있는 파일이겠죠?
저 루틴은 최초에만 실행하고 다시는 실행하지 못하게 해야 할것 같습니다.
안그러면 이 스크립트가 반복되면서 다시 원래 값이 되어 버립니다.
아니면 맨 아래 전송 후에 OLD_LIST 변수에 담는것이 아니라
OLD_LIST.txt 에 저장이 되어야 할 것 같습니다.
댓글 감사합니다!
겨우.. 겨우 일단 이상한거 하나 만들었습니다.
어우..;; 진짜 기초가 없으니 너무 빡셉니다. 전문 서적을 한권 봐야하나 ㄷㄷ
저도 지난번 교보문고갔을때 리눅스 쉘 프로그래밍 책을 하나 구입할까 하다가 돈 아까워서 말았습니다. 인터넷에 좋은 자료와 선생님들이 많은데 4만원돈 넘겨 사는게 아깝더라구요. ㅎㅎ
cmt alert