centos crontab 目录(centos7查看目录命令)
老铁们,大家好,相信还有很多朋友对于centos crontab 目录和centos7查看目录命令的相关问题不太懂,没关系,今天就由我来为大家分享分享centos crontab 目录以及centos7查看目录命令的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
centos7 crontab定时执行PHP页面,比如发邮件
为了在 CentOS7系统上利用 crontab定时执行 PHP页面,比如发送邮件,我们首先需要了解 crontab命令的基本格式。crontab命令允许我们设置定时任务,其格式为***** command,其中每个星号代表时间的组成部分。
在这条命令中,第 1列代表分钟(1-59),使用*或者*/1表示每个分钟;第 2列代表小时(0-23),表示某小时;第 3列代表日期(1-31),表示某日;第 4列代表月份(1-12),表示某月;第 5列代表星期(0-6),其中0表示星期天。最后,第 6列则是要执行的命令。
要查看当前用户下的所有定时任务,只需在终端中输入 `crontab-l`命令。若想编辑定时任务脚本,可以通过执行 `crontab-e`打开一个文本编辑器,如 vi。在 vi编辑器中,使用 `i`进入插入模式,编辑任务脚本。
要添加新的定时任务,例如每天的 2点 20分执行位于 `/home/`文件夹下的 `my.php`文件,可以编写以下脚本:
`20 2***/usr/local/bin/php/home/my.php`
此脚本表示每天在 2点 20分执行 `my.php`文件。其中,`/usr/local/bin/php`是 PHP的执行目录。如果在服务器上安装了多个 PHP版本,可以通过以下方法找到正确的执行目录:
1.输入 `which php`,系统会返回 PHP的执行路径。
2.在多版本 PHP或者使用如宝塔等服务器面板的情况下,可以通过检查 PHP配置文件 `php.ini`来找到执行目录,例如 `/www/server/php/56/bin/php`。
了解了这些基本设置后,您就可以利用 crontab定时执行 PHP页面,比如用于发送邮件等任务了。希望这个详细的解释对您有所帮助!
CentOS下CronTab任务周期计划详解
CronTab任务周期计划
格式:
***** command
分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-6)
说明:
1、星号可以匹配所有字符
2、一个整数、必须精确匹配
3、用短划线隔开的两个整数,它们匹配的是值的范围。
4、时间范围后加斜扛和一个步长值。1-10/2
普通用户流程:
crontab-e crontab是设置了setuid的,所以用户具有他的权限也就是root,并会在/tmp/cron....文件处理后保存在/var/spool/cron/$username中。
日志:
/var/log/cron
配置目录:
/var/run/crond.pid进程号地址
/etc/crontab使用指导文件
/etc/$weekday.等分别时日月周的目录,即可以把脚本放进去他会按时执行。
/etc/cron.{deny,allow}拒绝和允许用户使用crontab
Vixie-Cron:
centos安装时会默认安装此包,此包可以包括一个步长值。也就是如1,3,6,9,12可以写成,1-12/3除以3。所谓的*/1*/2也就是每一分钟每两分钟运行command。即1-59/{2,3}。
%号的运用:
%百分号表示command中的换行,只有第一个百分号之前的文本才包含在实际命令中,其余的行则作为该命令的标准输入。
安装:
yum install-y crontabs
使用:
crontab--help
crontab-e#检出一个crontab副本,调用vi编辑它,并重新保存在crontab目录。
crontab-l#将crontab的内容打印到标准输出。
crontab-r#册除并不留任何内容。
......
root册除其它用户。
crontab-r$username
[root@nagios~]# crontab--help
crontab: invalid option--'-'
crontab: usage error: unrecognized option
usage:crontab [-u user] file
crontab [-u user] [-e|-l|-r ]
(default operation is replace, per 1003.2)
-e(edit user's crontab)
-l(list user's crontab)
-r(delete user's crontab)
-i(prompt before deleting user's crontab)
-s(selinux context)
[root@nagios~]# ll/usr/bin/crontab
-rwsr-xr-x 1 root root 47520 Jul 19 2011/usr/bin/crontab
[root@nagios~]# cat/var/run/crond.pid
2074
[root@nagios~]# ll/etc/|grep-E cron
drwxr-xr-x 2 root root 4096 Apr 2 00:59 cron.d
drwxr-xr-x. 2 root root 4096 Sep 27 2011 cron.daily
-rw-r--r-- 1 root root 0 Jul 19 2011 cron.deny
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.hourly
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.monthly
-rw-r--r-- 1 root root 457 Sep 27 2011 crontab
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.weekly
[root@nagios~]# cat/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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
[root@nagios~]# ll/var/spool/cron/
total 8
-rw------- 1 root root 60 Apr 2 01:33 root
-rw------- 1 zwhset zwhset 68 Apr 2 01:51 zwhset
[root@nagios~]# tail-5/var/log/cron
Apr 2 17:24:01 nagios CROND[20544]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20549]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20550]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20551]:(zwhset) CMD(echo hello~/1.txt)
Apr 2 17:25:01 nagios CROND[20552]:(zwhset) CMD(echo hello~/1.txt)
[root@nagios~]# ps aux|grep cron
root 2074 0.0 0.5 117212 1316? Ss 01:40 0:04 crond
root 20641 0.0 0.6 139684 1468 pts/1 S+ 17:30 0:00 crontab-e
zwhset 20642 0.0 0.7 119284 1756 pts/1 S+ 17:30 0:00/bin/vi/tmp/crontab.YphQpH
root 20663 0.0 0.3 103236 856 pts/0 S+ 17:31 0:00 grep cron
[root@nagios~]# lsof-c crontab
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
crontab 20641 root cwd DIR 253,0 4096 130818/root
crontab 20641 root rtd DIR 253,0 4096 2/
crontab 20641 root txt REG 253,0 47520 401259/usr/bin/crontab
crontab 20641 root mem REG 253,0 5952 261889/lib64/security/pam_deny.so
crontab 20641 root mem REG 253,0 18592 261891/lib64/security/pam_env.so
crontab 20641 root mem REG 253,0 18592 261903/lib64/security/pam_limits.so
crontab 20641 root mem REG 253,0 10224 261901/lib64/security/pam_keyinit.so
crontab 20641 root mem REG 253,0 10240 261906/lib64/security/pam_loginuid.so
crontab 20641 root mem REG 253,0 6040 261912/lib64/security/pam_permit.so
crontab 20641 root mem REG 253,0 14384 261923/lib64/security/pam_succeed_if.so
crontab 20641 root mem REG 253,0 10200 261905/lib64/security/pam_localuser.so
crontab 20641 root mem REG 253,0 51952 261929/lib64/security/pam_unix.so
crontab 20641 root mem REG 253,0 113432 261657/lib64/libnsl-2.12.so
crontab 20641 root mem REG 253,0 14456 261884/lib64/security/pam_access.so
crontab 20641 root mem REG 253,0 65928 261663/lib64/libnss_files-2.12.so
crontab 20641 root mem REG 253,0 99158576 397021/usr/lib/locale/locale-archive
crontab 20641 root mem REG 253,0 383504 261640/lib64/libfreebl3.so
crontab 20641 root mem REG 253,0 40400 261651/lib64/libcrypt-2.12.so
crontab 20641 root mem REG 253,0 1916568 261647/lib64/libc-2.12.so
crontab 20641 root mem REG 253,0 113096 261709/lib64/libaudit.so.1.0.0
crontab 20641 root mem REG 253,0 19536 261653/lib64/libdl-2.12.so
crontab 20641 root mem REG 253,0 55848 261879/lib64/libpam.so.0.82.2
crontab 20641 root mem REG 253,0 122040 261718/lib64/libselinux.so.1
crontab 20641 root mem REG 253,0 154464 261636/lib64/ld-2.12.so
crontab 20641 root 0u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 1u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 2u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 3u unix 0xffff88000225c380 0t0 91831 socket
crontab 20641 root 5u REG 253,0 68 916745/tmp/crontab.YphQpH
Centos下crontab指定执行用户
Centos下可以通过配置crontab来定时执行任务,执行体可以是一条系统命令或自己写的一个脚本,同时可以指派用户来执行。配置crontab有两种方法。
方法1、使用crontab命令,例如添加一个新的或编辑已有的,使用:
crontab-e
就可以进入配置文件。此时配置crontab的执行者是当前登入用户,如果当前用户是root,需要为其他用户配置,可以使用
crontab-e-u用户名
或
su用户名
crontab-e
这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。
方法2、直接在/etc/crontab文件中添加,不过需要是root身份。打开文件,应该会看到类似下面的信息
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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
要添加新的crontab,只需要在文件最后增加即可。注意这里面需要指定用户名;而方法1中则不需要,如果指定了,它会认为是命令的一部分,从而可能导致crontab执行失败。
如果服务器都是有root来管理,建议添加crontab使用方法2,这样系统中的所有计划任务都在一起,一目了然。