답변:
이러한 폴더 중 하나에 쉘 스크립트를 넣어 : /etc/cron.daily
, /etc/cron.hourly
, /etc/cron.monthly
또는 /etc/cron.weekly
.
이것으로 충분하지 않으면 한 달에 두 번 또는 5 분마다 더 구체적인 작업을 추가 할 수 있습니다. 터미널로 이동하여 다음을 입력하십시오.
crontab -e
개인 crontab (크론 구성 파일)이 열립니다. 그 파일의 첫 줄은 모든 것을 설명합니다! 모든 라인에서 실행할 하나의 명령과 해당 스케줄을 정의 할 수 있으며 중단이 발생하면 형식이 매우 간단합니다. 구조는 다음과 같습니다.
minute hour day-of-month month day-of-week command
모든 숫자에 대해 목록을 사용할 수 있습니다 (예 : 5,34,55
분 필드)는 정의 된 시간에 관계없이 5시, 34시, 55시를 실행한다는 의미입니다.
간격을 사용할 수도 있습니다. 그것들은 다음과 같이 정의됩니다 : */20
. 이 예는 20 분마다를 의미하므로 분 열에서는와 같습니다 0,20,40
.
매주 월요일 오후 5:30에 명령을 실행하려면 다음을 수행하십시오.
30 17 * * 1 /path/to/command
또는 15 분마다
*/15 * * * * /path/to/command
요일은 0에서 6까지이며 여기서 0은 일요일입니다.
*/15 * * * * /path/to/command
, 당신이 할 수있는 @reboot /path/to/command
시작에 무언가를 실행하기 위해.
실행하려는 작업을 사용자와 동일한 권한으로 실행할 수있는 경우 실행하여 EDITOR="gedit" crontab -e
(gedit를 사용하여 crontab 파일을 편집하거나) 간단히 crontab -e
(기본 편집기를 사용하여 ) 편집 할 수있는 사용자 crontab을 사용하는 것이 좋습니다 터미널에서.
예를 들어 10 분마다 무언가를 실행하려면 다음과 같은 줄을 추가하십시오.
*/10 * * * * /usr/bin/somedirectory/somecommand
파일을 저장하십시오.
로 crontab 사용자의 내용을 볼 수 있습니다 crontab -l
.
루트로 실행되는 크론 작업을 추가하려면을 실행하여 루트의 크론 탭을 편집 할 수 있습니다 sudo crontab -e
.
가장 유연한 방법은 /etc/crontab
루트 권한으로 만 편집 할 수 있는 시스템 crontab을 사용 하는 것입니다. 이 파일에서 각 명령이 지정된대로 실행되는 사용자이므로 루트 (권한이 필요한 경우) 또는 시스템의 다른 사용자로 명령을 실행할 수 있습니다.
예를 들어, 루트로 10 분마다 무언가를 실행하려면 다음과 같은 행을 추가하십시오.
*/10 * * * * root /usr/bin/somedirectory/somecommand
(라인에 사용자 추가에 대한 알림)
로 시스템 crontab 파일의 내용을 볼 수 있습니다 cat /etc/crontab
.
자세한 내용은 https://help.ubuntu.com/community/CronHowto 에서 확인하십시오.
GUI를 사용하여 원하는 경우 소프트웨어 센터로 이동하여 예약 된 작업을 설치 하거나 실행 sudo apt-get install gnome-schedule
하십시오. cron 작업을 추가 할 수있는 강력한 GUI를 제공합니다.
이 방법을 사용하면 기본적으로 작업이 루트가 아닌 자신의 사용자로 실행됩니다. 이것은 일반적으로 좋은 것입니다.
KDE의 작업 스케줄러 ( kde-config-cron
)를 권장 합니다. 작업 스케줄러 모듈 의 시스템 설정 에서 액세스하십시오 .
개인 Crontab과 시스템 Crontab을 모두 관리하며 시간 경계를 쉽게 만들 수 있다는 점이 놀랍습니다 (아래 스크린 샷 참조). 나는이 부분이 실제로 과소 평가되었다고 생각한다.
KDE 작업 스케줄러는 일반 우분투에서 작동하지 않습니다. KUbuntu와 같은 KDE 시스템에서만 작동합니다. 비 KDE 시스템의 경우 gnome-schedule을 사용하는 것이 좋습니다
$ sudo apt-get install gnome-schedule
응용 프로그램은 대시에서 예약 된 작업입니다.
I can't install gnome schedule on Ubuntu 16.04
@ askubuntu.com/questions/785657/...을 . @ bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/… 를 다운로드 할 수있는 패키지가 있습니다 . 그냥 수행$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
Cron 작업이 bash 스크립트를 통해 실행되도록 설정하고 싶었으므로 스크립트를 실행하면 cron 작업이 추가됩니다.
나는 당신이 다음을 사용할 때 깨달았습니다.
crontab -e
그런 다음 파일을 만듭니다.
/var/spool/cron/crontabs/root
여기서 root는 crontab 명령을 실행중인 사용자의 이름입니다. 따라서이를 바탕으로 최소한 14.04에서는 다음 bash 명령을 실행하여 새 Cron 작업을 만들 수 있습니다.
echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root
또한 파일에 대한 올바른 소유권을 설정해야합니다.
chown root:root /var/spool/cron/crontabs/root
올바른 권한을 설정하십시오.
chmod 600 /var/spool/cron/crontabs/root
실행시 crontab -e
목록에 이미 Cron 작업이있는 경우 다음 명령을 사용하여 목록에 추가 할 수 있습니다.
echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
test_cron.sh
기호 링크를 사용하여 Ubuntu 18.04에서 1 분마다 cron으로 스크립트를 실행하는 예 :
test_cron.sh
파일:
#!/bin/bash
echo "System backuped" >> /media/myname/data/backup/backup_tmp.log
$USER
경로 에서처럼 스크립트에서 환경 변수를 사용하려면 정확한 경로를 입력하는 것이 좋습니다. bash는 실행 시간에 변수를 알지 못합니다.
myname
사용자 이름입니다 (루트 그룹의 일부이므로 루트 권한이 필요한지 확실하지 않습니다).
사용자가 cron 작업을 설정하도록 허용하면 필요한 경우 파일이 작성됩니다.
sudo nano /etc/cron.allow
root
myname
스크립트 경로는 /home/myname/shell/test_cron.sh
소유자를 변경하고 실행 가능하게 만들었습니다.
sudo chown myname /home/myname/shell/test_cron.sh
chmod +x /home/myname/shell/test_cron.sh
심볼릭 링크를 추가했습니다.
sudo ln -s /home/myname/shell/test_cron.sh /usr/bin/test_cron
매분마다 myname
새로운 작업을 추가 하면서 기록했습니다 test_cron
.
crontab -e
*/1 * * * * test_cron
목록에서 명령이 있는지 확인하려면 다음을 수행하십시오.
crontab -l
*/1 * * * * test_cron
실행을 확인하려면
grep -i cron /var/log/syslog
Nov 17 12:28:01 myname-ubuntu CRON[13947]: (myname) CMD (system-backup)