자동 실행 기능 (AT crontab에서) 예약 리눅스

자동 실행 기능 (AT crontab에서) 예약 리눅스

개념

리눅스 시스템에서는 작업 준비를 진행하는 두 가지 방법을 제공합니다

  • 만에 한 번 수행

  • crontab을 주기적으로 반복

이 두 가지 도구를 적용하여 운영 체제 수준에서 자동 실행 기능 타이밍 달성하기 위해 우리를 수

실험 환경

操作系统:CentOS Linux release 7.3.1611 (Core)

IP: 192.168.230.134

소개에

명령에서, 한 번 실행됩니다

이 기능은 ATD 도구를 사용하여, 당신은 확인해야하는 활성 상태

[root@localhost ~]# systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-09-07 18:18:18 CST; 4h 2min ago
 Main PID: 921 (atd)
   CGroup: /system.slice/atd.service
           └─921 /usr/sbin/atd -f

Sep 07 18:18:18 localhost.localdomain systemd[1]: Started Job spooling tools.
Sep 07 18:18:18 localhost.localdomain systemd[1]: Starting Job spooling tools...

사용에

다음과 같이 일반적인 명령은

[root@localhost ~]# at -help
Usage: at [-V] [-q x] [-f file] [-mMlbv] timespec ...
       at [-V] [-q x] [-f file] [-mMlbv] -t time
       at -c job ...
       atq [-V] [-q x]
       at [ -rd ] job ...
 atrm [-V] job ...  batch

시간 형식 :

체재 의미
HH : MM 1시 1분 다음 실행 1시 1분
HH : MM의 YYYY-MM-DD 1시 2017년 9월 8일 특정 시간에 실행 날짜를 지정
HH : MM [오전 / 오후] + 숫자 [분 / 시간 / 일 / 주] 이제 + 삼일 특정 시점 이후 시간에 넣어

에서 예

테스트 쉬를 만들고 권한을 수정

[root@localhost ~]# vim test.sh

echo '豆姐威武'

[root@localhost ~]# chmod 755 test.sh [root@localhost ~]# ./test.sh 豆姐威武

현재 시간보기

[root@localhost ~]# date
Thu Sep  7 23:19:51 CST 2017

설정 test.sh 23시 21분 Ctrl 키와 명령 관심을 실행 명령에서 사용 + D를

[root@localhost ~]# at 23:21
at> /root/test.sh
at> <EOT>
job 5 at Thu Sep  7 23:21:00 2017

분을 기다린 후, 시간과 설정 시간을 볼 수 정보 시스템을 받기

You have new mail in /var/spool/mail/root
[root@localhost ~]# date
Thu Sep  7 23:21:04 CST 2017

보기 정보 시스템에서 수신

[root@localhost ~]# cat /var/spool/mail/root

From root@localhost.localdomain  Thu Sep  7 23:21:00 2017 Return-Path: <root@localhost.localdomain> X-Original-To: root Delivered-To: root@localhost.localdomain Received: by localhost.localdomain (Postfix, from userid 0) id A139B243D2; Thu, 7 Sep 2017 23:21:00 +0800 (CST) Subject: Output from your job 5 To: root@localhost.localdomain Message-Id: <20170907152100.A139B243D2@localhost.localdomain> Date: Thu, 7 Sep 2017 23:21:00 +0800 (CST) From: root@localhost.localdomain (root) 豆姐威武

스크립트의 실제적인 사본 : 
오프 시간

[root@localhost ~]# at 18:00 2017-09-10
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> <EOT> job 6 at Sun Sep 10 18:00:00 2017

그것은 2017년 9월 7일 18:00 자동으로 종료됩니다

에서 명령을 취소

명령에서 현재보기 
명령 ATQ를 사용하여

[root@localhost ~]# atq
6   Sun Sep 10 18:00:00 2017 a root

명령 취소 
명령으로 atrm을 사용하여

[root@localhost ~]# atrm 6

crontab을 소개

crontab을 명령은 구성에 따라 주기적으로 수행

그의 기록은 / var에 / 로그 / 크론에 저장됩니다

이 기능은 있으며 crond 서비스를, 정상 상태를 보장 할 필요가 필요

[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-09-07 18:18:18 CST; 5h 51min ago Main PID: 920 (crond) CGroup: /system.slice/crond.service └─920 /usr/sbin/crond -n Sep 07 18:18:18 localhost.localdomain systemd[1]: Started Command Scheduler. Sep 07 18:18:18 localhost.localdomain systemd[1]: Starting Command Scheduler... Sep 07 18:18:18 localhost.localdomain crond[920]: (CRON) INFO (RANDOM_DELAY will be ...) Sep 07 18:18:19 localhost.localdomain crond[920]: (CRON) INFO (running with inotify ...) Hint: Some lines were ellipsized, use -l to show in full. 

사용의 crontab

다음과 같이 일반적인 명령은 다음과 같습니다

[root@localhost ~]# crontab -help
crontab: invalid option -- 'h'
crontab: usage error: unrecognized option
Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab -r delete user's crontab -i prompt before deleting -n <host> set host in cluster to run users' crontabs -c get host in cluster to run users' crontabs -s selinux context -x <mask> enable debugging

시간 형식 :

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    |
|    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7) | | | +---------- month (1 - 12) | | +--------------- day of month (1 - 31) | +-------------------- hour (0 - 23) +------------------------- min (0 - 59)

crontab을 예

또는 test.sh 실험을하기 전에 만들어 사용하십시오

새로운 계획의 crontab 명령을 사용하는 방법

현재 시간을 보려면

[root@localhost ~]# date
Thu Sep  7 23:52:12 CST 2017

23시 55분 매일 스크립트 실행으로 설정 계획을 작성 /root/test.sh

[root@localhost ~]# crontab -e

55 23 * * * /root/test.sh

no crontab for root - using an empty one crontab: installing new crontab

현재 일정보기 :

[root@localhost ~]# crontab -l
55 23 * * * /root/test.sh

2 분 대기 :

[root@localhost ~]# date
Thu Sep  7 23:55:07 CST 2017 You have new mail in /var/spool/mail/root

보기 기록 :

[root@localhost ~]# cat /var/spool/mail/root 
From root@localhost.localdomain  Thu Sep  7 23:55:01 2017 Return-Path: <root@localhost.localdomain> X-Original-To: root Delivered-To: root@localhost.localdomain Received: by localhost.localdomain (Postfix, from userid 0) id 45D1028EB7; Thu, 7 Sep 2017 23:55:01 +0800 (CST) From: "(Cron Daemon)" <root@localhost.localdomain> To: root@localhost.localdomain Subject: Cron <root@localhost> /root/test.sh Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated Precedence: bulk X-Cron-Env: <XDG_SESSION_ID=52> X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0> X-Cron-Env: <LANG=en_US.UTF-8> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> Message-Id: <20170907155501.45D1028EB7@localhost.localdomain> Date: Thu, 7 Sep 2017 23:55:01 +0800 (CST) 豆姐威武

crontab을 프로그램 제거

당신은 하나 개 또는 두 개의 프로그램을 제거해야하는 경우, 직접 사용의 crontab -e는 편집 삭제 입력 
-r이 할 수있는, 당신은 계획을 비우려면

[root@localhost ~]# crontab -l
55 23 * * * /root/test.sh [root@localhost ~]# crontab -r [root@localhost ~]# crontab -l no crontab for root

crontab을 보충

또한 계획 스크립트를 달성하기 위해 / etc / crontab 파일을 편집 할 수 있습니다

[root@localhost ~]# vim /etc/crontab 

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed

하지만 가끔은 이런 식으로 당신이 있으며 crond 서비스를 다시 시작해야 즉시 적용되지 않습니다

추천

출처www.cnblogs.com/telwanggs/p/11547398.html