- 浏览: 75695 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
尹超5200:
你TM写点文字能死啊
java图片上传回显(火狐待测) -
shibin_1109:
如果冲突没更新下来的话也可以使用git同步来解决.
Eclips GIT冲突解决
以前一直在用linux的定时,感觉这里没什么东西,只是会用所以也没有深入的研究,头两天有个朋友问我关于crontab的问题,发现自己还不会,所以重新温习了一遍,总结了一下linux的定时
一,时间设定
分 小时 日 月 星期 命令
* * * * * user-name command to be executed
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
例子:
每小时的第三十分钟以developer用户调用一次接口,并输出
每三十分钟执行一次resapi.sh脚本,并把输出的信息全部扔到垃圾箱里去
晚上11点到早上8点之间每两个小时和早上八点
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
每周一,三,五的下午3:00系统进入维护状态,重新启动系统。
每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。
二,输出
linux中crontab定时器里的"2>&1"含义解释:
在crontab定时器中有如下类似的脚本:
0 2 * * * php /data/test/test.php >/dev/null 2>&1 &
其中&1更准确的说应该是文件描述符 1,而数字1一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
command >out.file 2>&1 &
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行。
试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
你可以用
ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;
ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;
ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;
ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。
为何2>&1要写在后面?
command > file 2>&1
首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。
用strace可以看到:
1. command > file 2>&1
这个命令中实现重定向的关键系统调用序列是:
open(file) == 3
dup2(3,1)
dup2(1,2)
2. command 2>&1 >file
这个命令中实现重定向的关键系统调用序列是:
dup2(1,2)
open(file) == 3
dup2(3,1)
可以考虑一下不同的dup2()调用序列会产生怎样的文件共享结构。
一,时间设定
分 小时 日 月 星期 命令
* * * * * user-name command to be executed
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
例子:
每小时的第三十分钟以developer用户调用一次接口,并输出
30 0 * * * developer curl -q http://localhost:9180/expai_data/readLog > /dev/null 2>>/data/logs/expai_data/error.log
每三十分钟执行一次resapi.sh脚本,并把输出的信息全部扔到垃圾箱里去
*/30 * * * * developer bash resapi.sh > /dev/null 2>&1
晚上11点到早上8点之间每两个小时和早上八点
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
每周一,三,五的下午3:00系统进入维护状态,重新启动系统。
00 15 * * 1,3,5 shutdown -r +5
每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。
12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt
二,输出
linux中crontab定时器里的"2>&1"含义解释:
在crontab定时器中有如下类似的脚本:
0 2 * * * php /data/test/test.php >/dev/null 2>&1 &
其中&1更准确的说应该是文件描述符 1,而数字1一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
command >out.file 2>&1 &
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行。
试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
你可以用
ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;
ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;
ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;
ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。
为何2>&1要写在后面?
command > file 2>&1
首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。
用strace可以看到:
1. command > file 2>&1
这个命令中实现重定向的关键系统调用序列是:
open(file) == 3
dup2(3,1)
dup2(1,2)
2. command 2>&1 >file
这个命令中实现重定向的关键系统调用序列是:
dup2(1,2)
open(file) == 3
dup2(3,1)
可以考虑一下不同的dup2()调用序列会产生怎样的文件共享结构。
发表评论
-
linux系统命令
2015-09-08 14:39 498getconf LONG_BIT (Linux查看版本说明当 ... -
linux修改主机名
2014-09-09 23:23 6841,直接执行hostname 主机名,但这么改只对当前用户有效 ... -
在Linux中如何获得某进程对应程序的完整路径
2014-09-01 23:05 772当我们在Linux下用ps aux 看到有如下一个进程时: r ... -
linux vi命令详解
2014-08-29 11:14 524进入vi的命令 vi filename : ... -
文件夹创建软连接
2014-08-20 09:57 1214win7文件夹创建软连接: mklink /j link-fi ... -
linux各版本的比较
2014-08-11 00:06 721目前主流和常用的Linux版本主要有: 1、Redhat 版本 ... -
linux安装mysql
2014-07-30 15:07 5151、安装 查看有没有安装过: yum l ... -
linux tar命令详解
2014-07-30 12:27 561c 创建新的档案文件。 ... -
zookeeper Error contacting service. It is probably not running错误
2014-07-30 10:13 9764公司要用zookeeper,所以昨天在本机装了一个伪集群 ... -
Linux netstat命令详解
2014-07-30 09:56 517常见参数 -a (all)显示所有选项,默认不显示LISTE ... -
linux touch
2014-07-29 17:42 715linux中touch命令参数参数: -a或--time=a ... -
linux下的more命令
2014-04-20 17:03 611名称:more 使用权限:所有使用者 使用方式:more ... -
linux命令netstat
2014-04-19 17:19 615简介 Netstat 命令用于显示各种网络相关信息,如网络连接 ... -
linux系统日志文件名
2014-03-31 23:49 829/var/log/cron 定时日志文件 /var/log/ ... -
shell script的追踪与调试
2014-03-31 23:04 479sh 参数: -n :不执行script,仅查询语法的问题,如 ... -
linux笔记
2014-03-30 03:01 519netstat -tuln 查看主机目前打开的网路服务端口 参 ... -
linux命令ls
2014-03-29 20:25 529参数: -1 每列仅显示一个文件或目录名称。 -a ... -
linux命令管道符"|"和重定向
2014-03-29 14:13 1899管道符 利用Linux所提供的管道符“|”将两 ... -
linux命令grep
2014-03-29 14:03 679grep (global search regular ... -
linux命令locate
2014-03-29 13:32 697locate命令其实是"find -name ...
相关推荐
linux crontab 详解,共享快乐
crontab命令的功能是在一定的时间间隔调度一些命令的执行。
Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍能记住了,关键是要记住/var/spool/cron这个目录。下面看一下...
本篇文章主要介绍了Linux定时任务Crontab详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
Linux crontab 命令 Linux crontab是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 ...
linux Crontab 用法的详细介绍,
Crontab 命令详解
linux下crontab详解,crontab组成结构,linux下定时备份数据库shell
linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此...另外, 由于用户自己也可以设置计划任务,所以,Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。
Linux命令之 crontab 用法详解。
下面小编就为大家带来一篇Linux crontab定时任务配置方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在大多数系统上,你必须得到系统管理员权限才可以提交...一些共享的系统上,因为只有一个crontab文件,只有管理员访问 crontab命令。为了您的Webserve帐户中启用请求的 cron,请参阅美国印第安纳大学网管 的 cron页面。
熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab -e编写任务。当然也可以直接写配置文件设置任务。 但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得...
linux下计划任务crontab的参数详细说明和实例参考,谢谢
用于定时执行某些SHELL,可在UNIX、LINUX系统上应用。
cron的配置文件称为“crontab”,是“cron table”的简写。这篇文章主要介绍了Linux下的crontab定时执行任务命令详解,需要的朋友可以参考下