Pywikipedia 봇 자동화 (구식) 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
4번째 줄: 4번째 줄:


==개요==
==개요==
{{참고|pywikipediabot 로그인 버그}}
*이 글은 이제 필요없게 되었다. ㅠㅠ
:본래 pywikipediabot은 자동로그인 기능이 있어서 expect가 필요없다.
:필자가 이것을 썼던 이유는 '''[[pywikipediabot 로그인 버그]]''' 때문이었다.
*[[expect]]를 활용하여 pywikipedia 로그인
*[[expect]]를 활용하여 pywikipedia 로그인
*[[crontab]]에 등록하여 주기적으로 실행
*[[crontab]]에 등록하여 주기적으로 실행
13번째 줄: 9번째 줄:


==수동 실행==
==수동 실행==
<syntaxhighlight lang='console'>
<source lang='dos'>
[root@zetawiki ~]# python /root/pywikipedia/redirect.py double -always
[root@jmnote ~]# python /root/pywikipedia/redirect.py double -always
Retrieving special page...
Retrieving special page...
Retrieved 9 redirects from special page.
Retrieved 9 redirects from special page.
25번째 줄: 21번째 줄:


Password for user Jmnote_bot on Jmnote:ko:  
Password for user Jmnote_bot on Jmnote:ko:  
</syntaxhighlight>
</source>
:→ 패스워드를 요구하므로 자동으로 처리될 수 없다.
:→ 패스워드를 요구하므로 자동으로 처리될 수 없다.


31번째 줄: 27번째 줄:
{{참고|expect}}
{{참고|expect}}
패스워드가 자동으로 입력되게 하기 위해 expect가 필요하다.
패스워드가 자동으로 입력되게 하기 위해 expect가 필요하다.
<syntaxhighlight lang='console'>
<source lang='dos'>
[root@zetawiki ~]# rpm -qa | grep expect
[root@jmnote ~]# rpm -qa | grep expect
expect-5.43.0-8.el5
expect-5.43.0-8.el5
</syntaxhighlight>
</source>


==자동화 스크립트 생성==
==자동화 스크립트 생성==
<syntaxhighlight lang='bash'>
<source lang='bash'>
mkdir /root/script
mkdir /root/script
cd /root/script
cd /root/script
47번째 줄: 43번째 줄:
echo "expect eof" >> redirect_expect.sh
echo "expect eof" >> redirect_expect.sh
chmod 755 redirect_expect.sh
chmod 755 redirect_expect.sh
</syntaxhighlight>
</source>
:→ /root/script 폴더를 만들고 거기에 스크립트를 생성하도록 하였다.
:→ /root/script 폴더를 만들고 거기에 스크립트를 생성하도록 하였다.
:→ 위 명령어 중 자신의 패스워드를 넣으면 된다.
:→ 위 명령어 중 자신의 패스워드를 넣으면 된다.
53번째 줄: 49번째 줄:


==스크립트 실행 테스트==
==스크립트 실행 테스트==
<syntaxhighlight lang='console'>
<source lang='dos'>
[root@zetawiki ~]# /root/script/redirect_expect.sh
[root@jmnote ~]# /root/script/redirect_expect.sh
spawn python /root/pywikipedia/redirect.py double -always
spawn python /root/pywikipedia/redirect.py double -always
Retrieving special page...
Retrieving special page...
78번째 줄: 74번째 줄:


... (생략)
... (생략)
</syntaxhighlight>
</source>
:→ 스크립트가 패스워드 입력 등 모든 과정이 자동으로 진행된다.
:→ 스크립트가 패스워드 입력 등 모든 과정이 자동으로 진행된다.


==예약 등록==
==예약 등록==
{{소스헤더|명령어}}
;명령어
<syntaxhighlight lang='bash'>
<source lang='bash'>
cat <(crontab -l) <(echo "35 * * * * /root/script/redirect_expect.sh 2>&1 >> /var/log/redirect_expect.log") | crontab -
cat <(crontab -l) <(echo "35 * * * * /root/script/redirect_expect.sh 2>&1 >> /var/log/redirect_expect.log") | crontab -
crontab -l
crontab -l
</syntaxhighlight>
</source>
:→ 매시 35분에 수행되도록 예약한다.
:→ 매시 35분에 수행되도록 예약한다.
:→ 수행내역을 /var/log/redirect_expect.log에 기록한다.<ref>중간에 2>&1 를 넣었기 때문에 표준출력뿐 아니라 오류메시지도 기록된다.</ref>
:→ 수행내역을 /var/log/redirect_expect.log에 기록한다.


{{소스헤더|실행예시}}
;실행예시
<syntaxhighlight lang='console'>
<source lang='dos'>
[root@zetawiki ~]# cat <(crontab -l) <(echo "35 * * * * /root/script/redirect_expect.sh 2>&1 >> /var/log/redirect_expect.log") | crontab -
[root@jmnote ~]# cat <(crontab -l) <(echo "35 * * * * /root/script/redirect_expect.sh 2>&1 >> /var/log/redirect_expect.log") | crontab -
[root@zetawiki ~]# crontab -l
[root@jmnote ~]# crontab -l
35 * * * * /root/script/redirect_expect.sh 2>&1 >> /var/log/redirect_expect.log
35 * * * * /root/script/redirect_expect.sh 2>&1 >> /var/log/redirect_expect.log
</syntaxhighlight>
</source>


==작동 확인==
==작동 확인==
103번째 줄: 99번째 줄:


==같이 보기==
==같이 보기==
*[[Pywikipedia 이중 넘겨주기 봇 돌리기]]
*[[미디어위키 이중 넘겨주기 봇 돌리기]]
*[[expect]]
*[[expect]]
*[[crontab]]
*[[crontab]]
*[[SCP 자동화]]
*[[SCP 자동화]]


==주석==
[[분류: 미디어위키]]
<references/>
 
[[분류:Pywikipedia]]
[[분류:Expect]]

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)

이 문서에서 사용한 틀: