Linux 루틴 작업 (at/cron)

3569 단어 LinuxShell
1. 한 번 만 수행 하 는 작업 스케줄 링 at
at. 규정된 시간 에 한 번 만 실행 하 는 관례 에 따라 작업 합 니 다.
/etc/host. allow 와 유사 하 며, at 에 도/etc/at. deny 와 at. allow 가 있 으 며, 역할 은 host 와 같 으 며, 일반적으로 at. deny 만 사용 하면 됩 니 다.(작업 스케줄 을 추가 할 수 있 습 니까?)
사용법
at [-mldv] TIME
at -c 工作号码
-m 即使没有任何输出信息,完成任务后也要发送mail通知用户
-l at -l 相当于atq,列出所有该用户at调度
-d at -d 相当于atrm,取消一个调度
-v 用明显的时间格式列出at调度列表
-c 列出后接的工作的实际命令内容
TIME 형식:
HH:MM
HH:MM YYYY-MM-DD
HH:MM[am|pm] [Monyh] [Date]
HH:MM[am|pm] + number [minute|hours|days|weeks]
eg:
ex> now + 5 minutes

쓰다
atd 서비스 시작:
#/etc/init.d/atd start

작업 스케줄 추가:
root@jammg:/etc/init.d# at now + 5minutes
warning: commands will be executed using /bin/sh
at> ls -la /etc
at>       <===== 这里输入ctrl + d结束
job 1 at Fri Apr  1 21:23:00 2016
root@jammg:/etc/init.d# at -c 1
#!/bin/sh
# atrun uid=0 gid=0
# mail jammgit 0
umask 22
...
cd /etc/init\.d || {
	 echo 'Execution directory inaccessible' >&2
	 exit 1
}
ls -la /etc

위 셸 스 크 립 트 를 보 세 요.
이 스케줄 은/etc/init. d 에 추가 되 어 있 기 때문에 명령 을 실행 하 는 것 도/etc/init. d 디 렉 터 리 로 갑 니 다.
이것 이 바로 '백 스테이지 실행' 입 니 다. nohup 명령 과 유사 합 니 다. 명령 은 atd 서비스 프로그램 관리 에 맡 기 고 오프라인 으로 도 문제 가 없습니다.
atq/atrm
atq 호스트 에 at 스케줄 링 이 얼마나 있 는 지 보 여 줍 니 다.
atrm [job number] 에서 작업 스케줄 을 삭제 합 니 다. 예 를 들 어 위의 job number 는 1 입 니 다.
batch: 부하 제어 추가
batch 는 다른 시스템 이 시간 이 있 을 때 만 백 스테이지 작업 을 진행 합 니 다.
작업 스케줄 을 추가 할 때 at 대신 batch 를 사용 하면 됩 니 다. 명령 용법 은 같 고 다른 atq 등 과 같이 사용 합 니 다.
주기 적 임무 스케줄 링 cron
cron 작업 스케줄 링 도/etc/cron. allow 와/etc/cron. deny 를 지원 합 니 다.
사용법
crontab [-u username] [-l|-e|-r]
-u 只有root才能选,为某任务添加工作调度
-l 查阅crontab的工作内容
-e 编辑crontab的工作内容
-r 删除所有crontab工作内容,若要删除一项,用-e去编辑

쓰다
cron 서비스 시작:
#/etc/init.d/cron start
나타 나 면: cron: can 't lock/var/run/crond. pid, otherpid may be 751: Resource temporary unavailable, 이 파일 을 삭제 하면 됩 니 다.
jammgit@jammg:~$ crontab -e
no crontab for jammgit - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        
처음으로 편집 환경 을 선택 하 게 해 줄 거 예요.
vim 를 선택 하고 입력:
0 12 * * * ls -la

종료 저장, 작업 스케줄 링 목록 보기:
jammgit@jammg:~$ crontab -l
0 12 * * * ls -la
分 时 日 月 周 命令 

일월 과 주 는 동시에 설정 할 수 없 으 며 시스템 이 어느 것 을 기준 으로 하 는 지 모른다.
* (별표)
언제나
, (쉼표)
대표 분리 시간;0, 3, 6, * * command 는 3 시 와 6 시 를 가리킨다
- (마이너스)
시간 대 를 대표 합 니 다.20 8 - 12 * * command 8 시 부터 12 시 까지 20 분 간격 으로 실행
/n (사선)
n 대표 숫자; */5 * * * * command 는 5 분 마다 한 번 씩 실행 하 는 것 을 의미 합 니 다.
그래서 위 에는 매일 12 시 에 ls - la 를 한 번 씩 집행 합 니 다.
시스템 프로필/etc/crontab
시스템 루틴 작업 이 라면 crontab 설정 파일 에 직접 추가 할 수 있 습 니 다.
root@jammg:/etc# cat crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
run - parts 는 지정 한 디 렉 터 리 에서 모든 파일 을 찾 아 한 번 실행 합 니 다 (/usr/bin/run - parts).
삼. anacron
anacron 은 전원 이 꺼 져 서 작업 스케줄 을 수행 하지 못 한 문제 에 대해 작 동 후 해당 하 는 임 무 를 수행 합 니 다.crontab 와 함께 사용 합 니 다.

좋은 웹페이지 즐겨찾기