백엔드 개발 PHP 튜토리얼 解析Ubuntu下crontab命令的用法_php技巧

解析Ubuntu下crontab命令的用法_php技巧

May 17, 2016 am 08:59 AM
crontab ubuntu

cron是一个Linux下的后台进程,用来定期的执行一些任务。因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效,但其他系统应该也差不多。

想要让cron执行你指定的任务,首先就要编辑crontab文件。crontab是一个文本文件,用来存放你要运行的命令。你可以以下命令
crontab -e 
来打开你的用户所属的crontab文件。第一次用这个命令,会让你选择文本编辑器,我选的是vim。选定的编辑器也可以使用
select-editor 
命令来更改。这点命令行中已经有足够的提示,就不多说了。

打开后的crontab文件类似这种样子:
# m h  dom mon dow   command 
*/2 * * * * date >> ~/time.log 
第二行是我为了测试写的一个定期任务,它的意思是,每隔两分钟就执行 date >> ~/time.log 命令(记录当前时间到time.log文件)。你可以把它加入你的crontab中,然后保存退出。

保存了crontab之后,我们还需要重启cron来应用这个计划任务。使用以下命令:
sudo service cron restart
下面稍微解释下crontab中每行的含义。crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:

分钟          0 - 59
小时          0 - 23
天              1 - 31
月              1 - 12
星期          0 - 6       0表示星期天

除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:

星号          表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
逗号          可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
斜线          一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别
                  */2 可以看成是能被2整除的任意值。

以下是一些例子(省略了命令部分):
* * * * *                  # 每隔一分钟执行一次任务 
0 * * * *                  # 每小时的0点执行一次任务,比如6:00,10:00 
6,10 * 2 * *            # 每个月2号,每小时的6分和10分执行一次任务 
*/3,*/5 * * * *          # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06
以上就是在cron中加入计划任务的基本知识。因为cron中的任务基本就是执行命令行,所以当然也会有权限问题。以上例子中的任务就是以你当前登录用户的权限执行的,如果你需要以root用户执行某个任务,可以在crontab前加上sudo。
sudo crontab -e 
顺带一提,crontab文件对每个用户都是不同的,所以刚才设置的定期看时间的任务,在这里是看不到的。因为我们没有为root用户增加这样的计划任务。

再顺带一提,不喜欢命令行的童鞋可以去 Ubuntu软件中心 下一个 计划任务 程序。在软件中心中搜索 schedule 就可以搜到。它是一个GUI的程序,做的还蛮傻瓜化的。不过好像没办法设置成使用root用户运行任务。而且,对于要ssl到服务器上进行操作的童鞋来说,命令行还是最好(唯一)的工具。

因为我目前就用到这些知识,所以对cron也没有更多了解。想了解Ubuntu下的cron的童鞋,可以去看看Ubuntu官方的这篇 CronHowTo ,个人觉得讲的还是蛮详细的。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 터미널을 열 수 없으면 어떻게 해야 합니까? Ubuntu 터미널을 열 수 없는 문제를 해결하는 방법은 무엇입니까? Ubuntu 터미널을 열 수 없으면 어떻게 해야 합니까? Ubuntu 터미널을 열 수 없는 문제를 해결하는 방법은 무엇입니까? Feb 29, 2024 pm 05:30 PM

Ubuntu 터미널을 열 수 없으면 어떻게 해야 합니까? Ubuntu 터미널을 열 수 없는 문제를 해결하는 방법은 무엇입니까?

Ubuntu 18.04 폴더 오른쪽 하단에 있는 자물쇠 아이콘을 취소하는 방법은 무엇입니까? Ubuntu 18.04 폴더 오른쪽 하단에 있는 자물쇠 아이콘을 취소하는 방법은 무엇입니까? Jan 12, 2024 pm 11:18 PM

Ubuntu 18.04 폴더 오른쪽 하단에 있는 자물쇠 아이콘을 취소하는 방법은 무엇입니까?

슈퍼유저로 Ubuntu에 로그인 슈퍼유저로 Ubuntu에 로그인 Mar 20, 2024 am 10:55 AM

슈퍼유저로 Ubuntu에 로그인

Ubuntu 24.04 LTS의 7가지 주요 특징 미리보기 Ubuntu 24.04 LTS의 7가지 주요 특징 미리보기 Feb 27, 2024 am 11:22 AM

Ubuntu 24.04 LTS의 7가지 주요 특징 미리보기

Ubuntu 시작 메뉴에서 아이콘을 제거하는 방법은 무엇입니까? Ubuntu 시작 메뉴에서 아이콘을 제거하는 방법은 무엇입니까? Jan 13, 2024 am 10:45 AM

Ubuntu 시작 메뉴에서 아이콘을 제거하는 방법은 무엇입니까?

crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까? crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까? Mar 09, 2024 am 09:49 AM

crontab 예약 작업이 실행되지 않는 몇 가지 이유를 알고 있습니까?

Ubuntu 20.04 화면 녹화 소프트웨어 OBS 설치 및 제거 그래픽 튜토리얼 Ubuntu 20.04 화면 녹화 소프트웨어 OBS 설치 및 제거 그래픽 튜토리얼 Feb 29, 2024 pm 04:01 PM

Ubuntu 20.04 화면 녹화 소프트웨어 OBS 설치 및 제거 그래픽 튜토리얼

Ubuntu는 마침내 스냅 패키지의 자동 업데이트 비활성화를 지원합니다. Ubuntu는 마침내 스냅 패키지의 자동 업데이트 비활성화를 지원합니다. Jan 13, 2024 am 10:09 AM

Ubuntu는 마침내 스냅 패키지의 자동 업데이트 비활성화를 지원합니다.

See all articles