"Pywikipedia 봇 자동화 (구식)"의 두 판 사이의 차이

52번째 줄: 52번째 줄:
Retrieving special page...
Retrieving special page...
Retrieved 2 redirects from special page.
Retrieved 2 redirects from special page.


>>> Crontab 작업 목록 전체 보기 <<<
>>> Crontab 작업 목록 전체 보기 <<<
73번째 줄: 71번째 줄:
Updating page [[Crontab 작업 목록 전체 보기]] via API
Updating page [[Crontab 작업 목록 전체 보기]] via API


 
... (생략)
>>> 패스워드 보안 정책 <<<
  Links to: [[패스워드 요건]].
Sleeping for 4.8 seconds, 2012-08-14 17:59:49
Sleeping for 4.8 seconds, 2012-08-14 17:59:54
  Links to: [[복잡한 패스워드]].
Sleeping for 4.8 seconds, 2012-08-14 17:59:59
Sleeping for 4.8 seconds, 2012-08-14 18:00:04
- #넘겨주기 [[패스워드 요건]]
+ #넘겨주기 [[복잡한 패스워드]]
 
Sleeping for 29.4 seconds, 2012-08-14 18:00:09
</source>
</source>
:→ 스크립트가 패스워드 입력 등 모든 과정이 자동으로 진행된다.
:→ 스크립트가 패스워드 입력 등 모든 과정이 자동으로 진행된다.

2012년 8월 14일 (화) 18:17 판

미디어위키 봇 자동화
pywikipedia 자동화
pywikipedia 배치 수행

1 수동 실행

[root@jmnote ~]# cd pywikipedia
[root@jmnote pywikipedia]# python redirect.py double -always
Retrieving special page...
Retrieved 9 redirects from special page.



>>> JQuery 날짜 범위 선택 <<<
   Links to: [[JQuery UI 기간 선택]].
   Links to: [[JQuery UI 기간 선택 (datepicker)]].
- #넘겨주기 [[JQuery UI 기간 선택]]
+ #넘겨주기 [[JQuery UI 기간 선택 (datepicker)]]

Password for user Jmnote_bot on Jmnote:ko:
→ 패스워드를 입력해야 하므로 자동으로 처리될 수 없다.

2 expect 설치 확인

패스워드가 자동으로 입력되게 하기 위해 expect가 필요하다.

[root@jmnote ~]# rpm -qa | grep expect
expect-5.43.0-17.fc11.x86_64

3 자동화 스크립트

echo '#!/usr/bin/expect' > redirect_expect.sh
echo 'set timeout 600' >> redirect_expect.sh
echo 'spawn python /root/pywikipedia/redirect.py double -always' >> redirect_expect.sh
echo "expect \"Password for user\"" >> redirect_expect.sh
echo "send \"P@ssw0rd\\r\"" >> redirect_expect.sh
echo "expect eof" >> redirect_expect.sh
chmod 755 redirect_expect.sh
→ 위 명령어 중 P@ssw0rd 대신 자신의 패스워드를 넣으면 된다.
→ 명령어 수행 중 대기시간이 길기 때문에 timeout 값을 충분히 주어야 한다. 여기서는 600초.

4 스크립트 실행예시

[root@jmnote ~]# /root/redirect_expect.sh
spawn python /root/pywikipedia/redirect.py double -always
Retrieving special page...
Retrieved 2 redirects from special page.

>>> Crontab 작업 목록 전체 보기 <<<
Sleeping for 4.3 seconds, 2012-08-14 17:58:59
   Links to: [[모든 사용자 crontab 작업 보기]].
Sleeping for 4.6 seconds, 2012-08-14 17:59:04
Sleeping for 4.8 seconds, 2012-08-14 17:59:09
   Links to: [[모든 계정 crontab 작업 보기]].
Sleeping for 4.8 seconds, 2012-08-14 17:59:14
Sleeping for 4.8 seconds, 2012-08-14 17:59:19
- #넘겨주기 [[모든 사용자 crontab 작업 보기]]
+ #넘겨주기 [[모든 계정 crontab 작업 보기]]

Password for user Jmnote_bot on Jmnote:ko: P@ssw0rd

Logging in to Jmnote:ko as Jmnote_bot via API.
Should be logged in now
Sleeping for 24.3 seconds, 2012-08-14 17:59:24
Updating page [[Crontab 작업 목록 전체 보기]] via API

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

5 예약 등록

명령어
cat <(crontab -l) <(echo "35 * * * * /root/redirect_expect.sh") | crontab -
crontab -l
실행예시
[root@jmnote ~]# cat <(crontab -l) <(echo "35 * * * * /root/redirect_expect.sh") | crontab -
[root@jmnote ~]# crontab -l
35 * * * * /root/redirect_expect.sh

6 작동 확인

봇의 작동상태는 다음과 같은 곳에서 확인할 수 있다.

7 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}