Joinc 팀블로그 리눅스 메뉴얼 정리 Joinc 위키
댓글

Recent Comments

Powered by Disqus
팀블로그 카테고리
  전체 (1105)
   공지사항 (1)
   검색엔진 (21)
   기술동향 (58)
   게임 (2)
   독서 (6)
   리눅스 (12)
   보안 (1)
   사회문제 (22)
   어셈블리 (43)
   영화 (3)
   오픈소스 (10)
   음악 (9)
   인물 (1)
   포인터 (4)
   프로그래머 (23)
   팀블로그 (20)
   테터툴즈 (29)
   C/C++ (152)
   FireFox (11)
   Gimp (2)
   Google (98)
   Java (13)
   Perl (2)
   Pthread (11)
   STL (13)
   TCP/IP (8)
   Tools (31)
   Web2.0 (42)
   Wiki (1)
«   2010/07   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

'리눅스 쉘 명령어'에 해당되는 글 1건

  1. 2007/08/16 linux man page : at 를 이용한 프로그램 스케쥴 관리 (5)
2007/08/16 22:36

linux man page : at 를 이용한 프로그램 스케쥴 관리

1장. AT

차례
1.1. 사용법
1.2. 설명
1.3. 옵션
1.4. 파일
1.5. 관련명령
1.6. 예제

at, batch, atq, atrm - 나중에 실행할 작업에 대한 설정,검사,삭제


1.1. 사용법

at [-V] [-q queue] [-f file] [-mldbv] TIME
at -c job [job...]
atq [-V] [-q queue]
atrm [-V] job [job...]
batch [-V] [-q queue] [-f file] [-mv] [TIME]

1.2. 설명

at와 batch는 나중에 /bin/sh를 이용하여 실행할 명령을 표준 입력이나 지정한 파일에서 읽어들인다.

at

지정된 시간에 명령을 실행한다.

atq

현재 사용자의 등록된 작업목록을 보여준다. 슈퍼유저라면 모든 사용자의 작업 목록을 보여준다. 출력 형식은 각 작업당 한 줄로 작업 번호, 날짜, 시간, 작업 구분 순이다.

batch

시스템 부하 수준이 낮을 때 명령을 수행한다; 즉, 부하 평균이 0.8 이하 또는 atrun으로 지정한 값 이하로 떨어졌을 때.

At은 POSIX.2 표준까지 포함하여 매우 복잡한 시간 형식도 지정할 수 있다. 그 날의 특정 시간에 작업을 수행하기 위해 HH:MM 형식으로 시간을 지정한다. (만약 시간이 이미 지났다면 다음날로 생각한다.) 또한 midnight, noon, 또는 teatime (4pm) 같은 문자와 아침 또는 저녁을 나타내기 위해 AM또는 PM와 같은 접미사를 사용할 수 있다. 또한 작업을 수행할 날짜에 대해서 month-name day year 형식으로 지정하거나 MMDDYY 또는 MM/DD/YY 또는 DD.MM.YY 형식으로 지정할 수 있다. 날짜 지정은 반드시 시간 지정 다음에 나와야 한다. 시간을 now + count time-units 형식으로 지정 할 수 있으며, time-units은 minutes, hours, days 또는 weeks 가 될 수 있다. 오늘 수행할 작업에는 today를, 내일 수행할 작업에는 tomorrow를 붙일 수 있다.

예를 들어, 지금부터 3일후 오후 4시에 작업을 수행하려면 at 4pm + 3 days, 7월 31일 오전 10:00에 작업을 수행하려면 at 10am Jul 31 내일 오후 1시에 작업을 수행하려면 at 1am tomorrow과 같이 하면 된다.

at과 batch 둘 다 표준 입력이나 -f 옵션으로 지정한 파일에서 명령을 읽어 수행한다. 작업 디렉토리, 환경 변수 (TERM, DISPLAY와 _ 변수는 제외) 와 umask는 호출 당시의 것이 유지된다. su(1) 쉘로 부터 실행된 at ? 또는 batch ? 명령은 현재 사용자 ID를 유지할 것이다. 표준 에러나 표준 출력로 출력되는 명령 수행 결과가 있다면 메일로 받게 된다. 메일은 /usr/sbin/sendmail 명령을 사용하여 보내진다. 만약 at이 su(1) 쉘에서 실행되었다면 시간 지정에 대한 정확한 정의는 /usr/doc/packages/at/timespec에 되있다.

슈퍼 유저는 어떤 경우에도 이 명령들을 사용할 수 있으나 다른 사용자는 /etc/at.allow과 /etc/at.deny의 내용에 따라 사용 권한이 결정된다.

만약 /etc/at.allow 파일이 존재하면, 그 파일에 명시된 사용자만이 at 명령을 사용할 수 있다.

만약 /etc/at.allow이 존재하지 않으면, /etc/at.deny에 명시되지 않은 모든 사용자가 at을 사용할 수 있다.

만약 두 파일이 모두 존재하지 않으면, 슈퍼 유저만이 at을 사용할 수 있다.

/etc/at.deny를 빈 파일로 두면 모든 사용자가 명령을 사용할 수 있고, 이것이 초기 설정이다.


1.3. 옵션

-v

표준 에러로 버전 번호를 출력한다

-q queue

명시한 큐를 사용한다. 큐 이름은 한 단어로 되어있다; 유효한 이름은 a부터 z까지와 A부터 Z까지이다. a 큐는 at의 초기값이고 b 큐는 batch의 초기값이다. 알파벳 순서로 뒤의 이름을 갖는 큐는 더 큰 niceness 값을 갖는다. 특별히 "=" 큐는 현재 수행되는 작업에 대한 큐로 예약되어 있다. 대문자 이름의 큐에 추가된 작업은 batch의 작업처럼 처리된다. atq에 큐 이름이 지정되면, 그 큐에 있는 작업들만 보여준다.

-m

출력 결과가 없더라도 작업이 완료될 때 사용자에게 메일을 보낸다. 보여준다.

-f file

표준입력이 아닌 file에서 작업명령을 읽는다.

-l

atq와 동일

-d

atrm과 동일

-v

작업이 수행될 시간을 보여준다. 환경 변수 POSIXLY_CORRECT이 설정되있지 않으면 "1997-02-20 14:50" 형식으로 시간이 표시되고, 설정되있는 경우에는 "Thu Feb 20 14:50:00 1996" 형식이 될 것이다.


1.4. 파일

/var/spool/atjobs
/var/spool/atspool
/proc/loadavg
/var/run/utmp
/etc/at.allow
/etc/at.deny

1.6. 예제

// 14시에 주의를 환기시키는 메일을 발송한다.			
# echo "mail -s '중요한 약속 있음' P@joinc.co.kr < /dev/null" | at 14:00

// 01시에 특정 URL페이지를 긁어온다.
# echo "wget url" | at 01:00

:::