crond是linux下周期性执行某项任务或等待处理某些事情的一个守护进程。
crond是系统默认安装切默认启动的服务。crond每分钟回去检查是否有要执行的任务,有就去执行。
linux下的任务调度分为两种,系统任务调度和用户任务调度。而配置调度任务的文件就叫做crontab文件.
cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/# .---------------- 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
# | | | | |
# * * * * * command to be executed
在以上各个字段中,还可以使用以下特殊字符:
crontab [-u user] [ -e | -l | -r ] -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。 file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。 -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。 -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。 -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。 -i:在删除用户的crontab文件时给确认提示。
其中-i -r 不建议使用,可以使用crontab -e到文件一一删除任务,这样避免错误操作删除。
一般情况下直接用crontab -e 编辑用户定时任务即可。
定时任务例子
* * * * * command // 每分钟执行一次
*/3 * * * * command // 每3分钟执行一次
10-20/3 * * * * command // 每小时的10-20分钟每3分钟执行一次
10,20 10-20 * * * command // 10点到20点的第10,第20分钟执行
1 2 4 * 3,4 command // 每月的4号和每周3,周四的2点1分执行一次
.bashrc .bash_profile只在shell登录状态下才会加载(交互模式),crontab定时任务是不会去加载这两个文件的, 所以如果脚本里依赖这两个文件的配置,执行就会失败。解决方案是手动source,在cronttab里或者定时运行的脚本首行去source这两个文件
在crontab里
*/5 * * * * source /home/root/.bashrc && your's command
在脚本首行
source /home/root/.bashrc
the rest command非著名程序员,全栈开发工程师,长期专注系统开发与架构设计。
功能待开通!
不小心删除了libc.so.6 升级系统软件说依赖更高glibc库,然后升级过程中错误删除了libc.so.6。。导致所有的命令均无法执行。 例如执行ll,有如下提示 ll sh: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory libc.so.6介绍 glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。 sh bash这些都是依赖与glibc库的,所
首先我们知道什么是流(stream),流物理设备的输入输出、存储设备上的文件的输入输出都映射到逻辑上的数据流,这是用来消除设备直接差异而抽象的一个概念。 通常情况下每个程序在启动的时候都会定义3个流:stderr、stdout、stderr,分别用来输入、输出、诊断和错误信息的输出,通常他们会被连接到用户终端(tty(4)),但是也可以修改到其他的文件和设备(重定向)。这取决于双亲进程的选择和设置。 Linux的本质是一切皆是文件,输入输出设备也是使用文件的形式存在和管理的,内核启动的时候默认会打开三个I/O设备文件:stdin、stdout、stderr,分别得到的描述符是0,1,2,并且他
file介绍 file命令用来探测文件的类型 用法 -b:列出辨识结果时,不显示文件名称; -c:详细显示指令执行过程,便于排错或分析程序执行的情形; -f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称; -L:直接显示符号连接所指向的文件类别; -m<魔法数字文件>:指定魔法数字文件; -v:显示版本信息; -z:尝试去解读压缩文件的内容。 file源码编译安装 github库 以安装5.25为例 wget https://github.com/file/file/archive/FILE5_25
介绍 xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。 xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。 xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。 xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。 xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了
Centos7修改软件源 这里以Centos7为例子,6同样的方法url里相应7修改为6即可 配置remi源 remi源依赖epel源,安装epel源 yum install epel-release 安装remi源 rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi 启用remi源 /etc/yum.repos.d/remi.repo,在[remi]下边的enabled=0改为enabled=1 同时也安装了各版本的php