본문 바로가기

Windows Server

예약작업..

 
사용자 삽입 이미지
예약작업 관련..


At명령어를 씁니다.

예약작업을 하게 되면 백그라운드로 돌아가기 때문에..
어떠한 예약 작업이 보고 싶게 되면 /interactive 옵션을 줘서 뭐가 돌아가는지 볼수 있습니다.


At

지정된 시간과 날짜에 컴퓨터에서 명령과 프로그램을 실행하도록 예약합니다. 예약 서비스를 실행하는 경우에만 at 명령을 사용할 수 있습니다. 매개 변수 없이 사용하면 at은 예약된 명령의 목록을 표시합니다.

구문

at [\\ComputerName] [{[ID] [/delete]|/delete [/yes]}]

at [[\\ComputerName] Hours:Minutes [/interactive] [{/every:Date[,...] | /next:Date[,...]}] Command]

매개 변수

\\ComputerName

원격 컴퓨터를 지정합니다. 이 매개 변수를 생략하면 at은 명령과 프로그램을 로컬 컴퓨터에 예약합니다.

ID

예약된 명령에 지정될 ID 번호를 지정합니다.

/delete

예약된 명령을 취소합니다. ID를 생략하면 컴퓨터의 예약된 명령이 모두 취소됩니다.

/yes

예약된 이벤트를 삭제할 때 시스템의 모든 쿼리에 yes로 응답합니다.

Hours:Minutes

명령을 실행할 시간을 지정합니다. 시간은 24시간 표시법(00:00[자정]부터 23:59까지)에 따라 시:분으로 표시됩니다.

/interactive

명령이 실행될 때 로그온한 사용자의 데스크톱과 명령이 상호 작용할 수 있게 합니다.

/every:

매주 목요일 또는 매월 3일과 같이 매주 또는 매달 지정된 날짜에 명령을 실행합니다.

date

명령을 실행할 날짜를 지정합니다. 하나 이상의 요일(M,T,W,Th,F,S,Su 중에서 입력)을 지정하거나 하루 이상의 날짜(1에서 31일까지)를 지정할 수 있습니다. 날짜 항목이 여러 개인 경우 쉼표로 구분합니다. Date를 생략하면 at은 현재 날짜를 사용합니다.

/next:

다음 주 목요일과 같이 돌아오는 요일에 명령을 실행합니다.

명령

실행할 Windows 명령, 프로그램(.exe 또는 .com 파일) 또는 일괄 프로그램(.bat 또는 .cmd 파일)을 지정합니다. 명령에 인수로 경로가 필요하면 절대 경로, 즉 드라이브 문자로 시작하는 전체 경로를 사용합니다. 명령이 원격 컴퓨터에서 실행되면 원격 드라이브 문자 대신 서버와 공유 이름의 UNC(범용 명명 규칙) 표기법을 지정합니다.

/?

명령 프롬프트에 도움말을 표시합니다.

설명

·         Schtasks는 예약된 작업을 만들고 관리하는 데 사용할 수 있는 또 다른 명령줄 예약 도구입니다. subtasks에 대한 자세한 내용은 관련 항목을 참조하십시오.

  • At 사용

At 명령을 사용하려면 로컬 Administrators 그룹의 구성원이어야 합니다.

  • Cmd.exe 로딩

At 명령은 명령을 실행하기 전에 명령 인터프리터인 Cmd.exe를 자동으로 로드하지 않습니다. 실행 파일(.exe)을 실행하고 있지 않으면 다음과 같이 명령을 시작할 때 Cmd.exe를 명시적으로 로드해야 합니다.

cmd /c dir > c:\test.out

  • 예약된 명령 보기

명령줄 옵션 없이 at을 사용하면 예약된 작업이 다음과 같은 표 형식으로 나타납니다.

Status  ID   Day        Time        Command Line
OK      1    Each F     4:30 PM     net send group leads status due
OK      2    Each M     12:00 AM    chkstor > check.file
OK      3    Each F     11:59 PM    backup2.bat
  • ID 번호 포함

명령 프롬프트에서 at과 함께 ID 번호를 사용하면 단일 항목에 대한 정보가 다음과 같은 형식으로 나타납니다.

Task ID:      1
 
Status:       OK
 
Schedule:     Each  F
 
Time of Day:  16:30:00
 
Command:      net send group leads status due

특히 명령줄 옵션이 있는 명령인 at으로 명령을 예약한 후 명령줄 옵션 없이 at을 입력하여 명령 구문이 올바른지 확인합니다. 명령줄 열의 정보가 올바르지 않으면 명령을 삭제하고 다시 입력합니다. 그래도 올바르지 않으면 명령줄 옵션을 줄여 다시 명령을 입력합니다.

  • 결과 보기

At으로 예약된 명령은 다른 작업을 처리하면서 실행됩니다. 결과는 컴퓨터 화면에 표시되지 않습니다. 결과를 파일로 리디렉션하려면 리디렉션 기호(>)를 사용합니다. 결과를 파일로 리디렉션하는 경우 at을 명령줄에서 사용하는지 아니면 배치 파일에서 사용하는지 여부와 관계없이 리디렉션 기호 앞에 이스케이프 기호(^)를 사용해야 합니다. 예를 들어 결과를 Output.text 파일로 리디렉션하려면 다음과 같이 입력합니다.

at 14:45 c:\test.bat ^>c:\output.txt

명령을 실행하는 현재 디렉터리는 systemroot 폴더입니다.

  • 시스템 시간 변경

At 명령으로 실행할 명령을 예약한 후 컴퓨터에서 시스템 시간을 변경하면 옵션 없이 at을 입력하여 변경된 시스템 시간으로 at 스케줄러를 동기화합니다.

  • 명령 저장

예약된 명령은 레지스트리에 저장됩니다. 따라서 예약 서비스를 다시 시작하면 예약된 작업이 손실되지 않습니다.

  • 네트워크 드라이브에 연결

네트워크에 액세스하는 예약된 작업에 리디렉션된 드라이브를 사용하지 마십시오. 예약 서비스가 리디렉션된 드라이브에 액세스하지 못하거나 예약된 작업이 실행될 때 다른 사용자가 로그온하면 리디렉션된 드라이브가 나타나지 않을 수 있습니다. 대신 예약된 작업에는 UNC 경로를 사용합니다. 예를 들면 다음과 같이 지정합니다.

at 1:00pm my_backup \\server\share

다음 구문은 사용하지 마십시오. 여기서 x:는 사용자가 설정한 연결입니다.

at 1:00pm my_backup x:

공유 디렉터리에 연결하는 데 드라이브 문자를 사용하는 at 명령을 예약한 경우 드라이브 사용이 완료되면 드라이브 연결을 끊는 at 명령을 포함해야 합니다. 드라이브 연결이 해제되지 않으면 명령 프롬프트에서 지정된 드라이브 문자를 사용할 수 없습니다.

  • 72시간 후 작업 중지

기본적으로 at 명령을 사용하여 예약된 작업은 72시간 후 중지됩니다. 레지스트리를 수정하여 이 기본값을 변경할 수 있습니다.

    1. 레지스트리 편집기(regedit.exe)를 시작합니다.
    2. 레지스트리에서 다음 키를 찾아 클릭합니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
    3. 편집 메뉴에서 값 추가를 클릭하고 다음 레지스트리 값을 추가합니다. 값 이름: AtTaskMaxHours, 데이터 형식: REG_DWORD, 기수: 10진수, 값 데이터: 0. 값 데이터 필드의 값 0은 작업을 중지하지 않는 무제한을 나타냅니다. 1에서 99 사이의 값은 시간을 나타냅니다.

·         주의

    1. 레지스트리를 잘못 편집하면 시스템에 심각한 손상을 줄 수 있습니다. 레지스트리를 변경하기 전에 컴퓨터의 중요한 데이터를 백업해야 합니다.
  • 작업 스케줄러 및 at 명령

예약된 작업 폴더를 사용하여 at 명령으로 만든 작업의 설정을 보거나 수정할 수 있습니다. At 명령을 사용하여 작업을 예약하면 해당 작업이 예약된 작업 폴더(: At3478)에 나타납니다. 그러나 예약된 작업 폴더에서 at 작업을 수정하면 해당 작업은 예약된 일반 작업으로 업그레이드됩니다. 이 작업은 at 명령으로 더 이상 볼 수 없게 되고 at 계정 설정의 영향을 받지 않게 됩니다. 사용자는 작업에 대한 사용자 계정과 암호를 명시적으로 입력해야 합니다.

Marketing 서버에 예약된 명령 목록을 표시하려면 다음과 같이 입력합니다.

at \\marketing

Corp 서버에서 ID 번호가 3인 명령에 대한 자세한 내용을 보려면 다음과 같이 입력합니다.

at \\corp 3

Corp 서버에서 오전 8시에 net share 명령을 실행하도록 예약하고 목록을 Maintenance 서버, Reports 공유 디렉터리의 Corp.txt 파일로 리디렉션하려면 다음과 같이 입력합니다.

at \\corp 08:00 cmd /c "net share reports=d:\marketing\reports >> \\maintenance\reports\corp.txt"

5일 간격으로 자정에 Marketing 서버의 하드 드라이브를 테이프 드라이브로 백업하고 백업 명령이 포함된 Archive.cmd라는 일괄 프로그램을 만든 다음 일괄 프로그램이 실행되도록 예약하려면 다음과 같이 입력합니다.

at \\marketing 00:00 /every:5,10,15,20,25,30 archive

현재 서버에서 예약된 모든 명령을 취소하려면 다음과 같이 입력하여 at 예약 정보를 삭제합니다.

at /delete

실행 파일(.exe)이 아닌 명령을 실행하려면 다음과 같이 명령 앞에 cmd /c를 입력하여 Cmd.exe를 로드합니다.

cmd /c dir > c:\test.out