- 浏览: 2549324 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
#vim /etc/crontab (需要加root )
*/10 * * * * root
/bin/sh /etc/memcached_check.sh >/dev/null 2>&1
00 01 * * * root
/bin/sh /data0/sh/shell_apache_access.sh >/dev/null 2>&1
01 5 * * * root /bin/sh /var/comm_twa/bin/clear_his.sh > /dev/null 2>&1
#crontab -e (不需要加root )
01 5 * * * /bin/sh /var/comm_twa/bin/clear_his.sh > /dev/null 2>&1
重新启动cron
# /etc/rc.d/init.d/crond restart
service crond restart
------------------------------- nohup
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束
,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程
。nohup就是不挂起的意思
( no hang up)。
该命令的一般形式为:nohup command &
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &
使用 jobs 查看任务。
使用 fg %n 关闭。
我们很多程序并不象mysqld一样可以做成守护进程,可能我们的程序只是普通程序而已,一般这种 程序即使使用 & 结尾,如果终端关闭,那么程序也会被关闭。为了能够后台运行,我们需要使用nohup这个命令,比如我们有个start.sh需要在后台运行,并且希望在 后台能够一直运行,那么就使用nohup:
nohup /root/start.sh &
============ 同步时间
00 3 * * * root /usr/sbin/ntpdate 192.168.101.18 ; /sbin/hwclock -w
50 8 * * * root /usr/sbin/ntpdate 192.168.101.18 ; /sbin/hwclock -w
============
/etc/crontab
Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序
使用cron服务.用 service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它
cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务
cron.d/ 是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面
cron.deny /etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户
cron.monthly/ 是每月执行一次的job
cron.weekly/ 是每个星期执行一次的job
cron.daily/ 是每天执行一次的job
cron.hourly/ 是每个小时执行一次的job
crontab 文件 cron 的主配置文件
root查看自己的cron设置:crontab -u root -l
crontab -u jushan -l
编辑的内容有一些格式和约定,输入:crontab -u root -e
要启动 cron 服务,使用 /sbin/service crond start 命令。要停止该服务,使用
/sbin/service crond stop 命令。推荐你在引导时启动该服务。
---------------------某个用户
根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保
存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行
要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令。
使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。
该文件使用的格式和 /etc/crontab 相同
crontab -l
crontab -e
------------------
注意crontab的格式时间为5列,格式出错会没法保存报错如下:
no crontab for root – using an empty one
crontab: installing new crontab
“/tmp/crontab.XXXXSUkg7y”:1: bad command
errors in crontab file, can’t install.
Do you want to retry the same edit?
/etc/rc.d/init.d/crond restart
*/1 * * * * /usr/sbin/ntpdate 192.168.36.1 2>/dev/null 1>/dev/null
------------基本知识:
crontabl -l 当前用户的crontab
crontab -u stone -l
在/etc目录下有一个crontab文件,这里存放有系统
运行的一些调度程序
。每个用户可以建立自己的调度crontab。 /usr/lib/cron/cron.allow表示谁能使用crontab命令。
可以用#vim /etc/crontab 打开文件看看里面的内容,如同下面的基本格式。
----理解1:每月每天每小时的第 0 分钟执行一次 /bin/ls :
* 0 * * * root /bin/ls //不需要测试,只要理解
第一道第五个字段
的整数取值范围及意义是:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
-----理解2:在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
*/20 6-12 * 12 * /usr/bin/backup
--------测试如下:crontab备份数据库
vim创建文件/var/www/html
/web-sale/qing/lime/bakmysql
输入:
rq=` date +"%Y%m%d"`(键盘最左上侧的符号,不是单引号)
tar zcvf /var/www/html/web-sale/qing/lime/mysql$rq.tar.gz /var/lib/mysql
或者写成
rq=` date +"%Y%m%d"`
mysqldump --all-databases -u root -p**** > /var/www/html/web-sale/qing/lime/mysql$rq.tar.gz
// /var/lib/mysql 是MySQL
库文件存放的目录
chmod +x /var/www/html/web-sale/qing/lime/bakmysql
修改/etc/crontab
#vi /etc/crontab
增加:
00 10 * * * root /var/www/html/web-sale/qing/lime/bakmysql
表示每天10点钟执行备份
-----------------------------------f1 f2 f3 f4 f5 command
分 时 日 月 周 命令
f1 — 分钟,从 0 到 59 之间的任何整数
f2 — 小时,从 0 到 23 之间的任何整数
f3 — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)
f4 — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)
f5 — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)
command — 表示要执行的任务(可以使运行linux系统命令,也可以是执行你自行编写的linux脚本命令。)
* 的作用:
星号(*)可以用来代表所有有效的值。比如:月份值中的星号,表示在满足其它制约条件后每月都执行该命令。
当 f1 为 * 时表示每分钟都要执行 command,f2 为 * 时表示每小时都要执行任务,其余类推
整数间的短线(-)的作用 :
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
整数间的正斜线(/)可以用来指定间隔频率:
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
整数间的逗号(,)的作用 :
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推
crontab的常用例子 :
#每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
linux系统的WEB服务器管理员经常用到crontab的例子 :
#在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
#每晚的21:30重启apache。
30 21 * * * /etc/init.d/apache2 restart
#每月1、10、22日的4 : 45重启apache
45 4 1,10,22 * * /etc/init.d/apache2 restart
#每周六、周日的1 : 10重启apache。
10 1 * * 6,0 /etc/init.d/apache2 restart
#在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0,30 18-23 * * * /etc/init.d/apache2 restart
#每星期六的11 : 00 pm重启apache。
0 23 * * 6 /etc/init.d/apache2 restart
#每一小时重启apache
* */1 * * * /etc/init.d/apache2 restart
#晚上11点到早上7点之间,每隔一小时重启apache
* 23-7/1 * * * /etc/init.d/apache2 restart
#每月的4号与每周一到周三的11点重启apache
0 11 4 * mon-wed /etc/init.d/apache2 restart
#1月1日的4点重启apache
0 4 1 jan * /etc/init.d/apache2 restart
----------------
0 11 * * * /bin/sh /usr/local/test_home/worksh/cron_env.sh
/usr/local/php/bin/php /usr/local/test_home/web_app/party/public/week_send.php >/dev/null 2>&1
vim /usr/local/test_home/worksh/cron_env.sh
#!/bin/sh
export TEST_HOME=/usr/local/TEST_home
export PHP_ENV=TEST
export LANG=en_US.UTF-8
$*
======================php脚本
接受参数数组 $argv
/usr/local/webserver/php/bin/php /tmp/sms.php 134××× test
============================= 防止脚本运行冲突
想到一个问题,如果在crontab里有个定时任务设置为一分钟执行一次,但是它执行的时间可能会超过一分钟,此时crontab一分钟后会再次运行该脚本吗?这样会不会出现冲突呢?网上找了下,说可以用Linux中的进程锁控制crontab执行的并发问题。
给一个shell脚本加锁,使用flock命令。
一般格式:
flock
[-sxun][-w #] fd#
flock [-sxon][-w #] file [-c] command...
常用选项:
-s, --shared :获得一个共享的锁。
-x, --exclusive :获得一个独占的锁。
-u, --unlock :移除一个锁,通常是不需要的,脚本执行完后会自动丢弃锁。
-n, --nonblock :如果没有立即获得锁直接失败而不是等待。
-w, --timeout :如果没有立即获得锁就等待指定的时间。
-o, --close :在运行命令前关闭文件的描述符。用于如果命令产生子进程时会不受锁的管控。
-c, --command :在shell中运行一个单独的命令。
-h, --help :显示帮助。
-V, --version :显示版本。
测试一下看看:
在/home目录下建立一个test.sh。
vim /home/test.sh
输入:
#!/bin/bash
wget --limit-rate=200k -P /tmp http://cachefly.cachefly.net/100mb.test
运行一个超过一分钟的命令。
chmod +x /home/test.sh
编辑crontab:
crontab -e
输入:
*/1 * * * * /usr/bin/flock -xn /var/run/test.lock -c '/home/test.sh'
设置每一分钟执行一次。
重启服务:
service crond restart
这样只有第一个进程执行完毕后,才会执行当前的下一个进程。在第一个进程执行过程中,下一分钟crontab运行flock检测到获得不了锁,就直接退出,直到第一个进程执行完,flock再次获得锁。
发表评论
-
设置sudo为不需要密码
2015-04-17 09:04 10524有时候我们只需要执 ... -
haproxy 安装配置和负载实例
2015-03-27 11:49 11540一、环境说明实验环境 OS CentOS5.4 192.1 ... -
/dev/mapper/VolGroup00-LogVol00 100% 如何处理
2015-03-03 10:51 8235服务器磁盘跑满了, 命令查看 如下 [root@lo ... -
Tsar开源:淘宝内部大量使用的系统监控工具
2014-08-07 09:51 985Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告 ... -
Linux运维常用命令 (转载)
2013-01-31 10:23 25351 删除0字节文件find-type f - ... -
linux恢复 rm -rf 删除的文件:extundelete
2013-01-24 15:47 8930http://blog.csdn.net/pang6013 ... -
网站排障分析常用的命令
2013-01-21 18:17 1407------------------------------- ... -
迁移vmware服务器后Device eth0 does not seem to be present
2013-01-21 10:58 2259用VMware 安装 linux 6.0 ... -
LoadRunner如何监控Linux系统资源 : rpc.rstatd
2012-12-17 14:49 10318一 简述:LoadRunner监控Linux资源时弹出如下错误 ... -
僵尸Z进程和D进程
2012-12-10 16:47 13166-------------- 1 关于ZOMBIE进 ... -
Unix操作系统硬链接与符号链接的区别
2012-12-10 16:08 2035Unix操作系统有很多值得 ... -
nagios配置参数详解
2012-12-04 14:12 9462# Nagios return codes#定 ... -
nagios自定义监控nginx php和ip_conn
2012-12-03 17:57 3178自定义ip_conn.sh :http://zhume ... -
【汇总】shell show收藏
2012-11-29 14:03 1300================== shell从文本取对应的 ... -
Kickstart+PXE+DHCP+TFTP+NFS自动安装Centos5
2012-11-29 11:34 1613http://5ydycm.blog.51cto.com/11 ... -
haproxy+keepalived高可用负载均衡(七层)
2012-11-29 10:36 4016HAproxy是一款基于TCP( ... -
LVS+Keepalived
2012-11-29 10:10 1745http://www.linuxvirtualserver.o ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7619http://network.51cto.com/art/ ... -
运维架构师-并不遥远的彼岸
2012-11-28 17:45 1745在百度里搜索运维架构师,你会发现招聘的职位还不少并且月薪、年 ... -
puppet模块汇总
2012-11-21 17:08 3045在磁盘上,一个模块对应一个特殊的目录结构: MODULE_ ...
相关推荐
linux 配置定时任务, crontab -e 编辑的文本,用户任务定时器配置,目录位置在 /var/spool/cron中的root文件中
Go定时器cron是一种在Go语言中实现的定时任务框架,它允许开发者定义基于cron表达式的周期性任务。cron表达式是一种强大的语法,用于定义任务执行的时间规律。在Go中,cron通常通过第三方库如`github....
本文将深入探讨Spring的定时器以及如何生成和理解`cron`表达式。 一、Spring定时任务 1. `@Scheduled`注解:这是Spring提供的一个用于标记定时任务的方法级别的注解。通过在方法上添加这个注解,可以设置执行周期...
### cron与crontab概念详解 #### 一、cron简介 cron是Linux系统中的一个守护进程,用于在特定的时间间隔内自动执行预定的任务或者命令。它可以帮助用户在无需人工干预的情况下自动化一系列工作流程,比如定时备份...
本篇文章将深入探讨如何动态地修改Spring定时器的cron表达式,以便任务能够根据业务需求进行实时调整。 首先,我们需要了解Spring中的定时任务是如何配置的。通常,我们会在Spring的配置文件中使用`@...
《vixie-cron-4.1:CentOS下的crontab定时任务源代码解析》 在Linux系统中,crontab是用于设置周期性被执行的任务的工具,它源自著名的Unix系统工具cron。Vixie-cron是cron的一个实现版本,由Paul Vixie开发,广泛...
在Go语言中,定时任务的实现常常依赖于定时器,其中`cron`是一个非常流行的库,它提供了类似于Linux系统cron定时器的功能。本教程将详细介绍如何在Go中使用`cron`库来创建和管理定时任务。 `cron`库是由`robfig`...
Linux定时器crontab是Linux系统中用于自动化任务调度的强大工具,它允许用户根据预定义的时间间隔安排任务的执行。这篇教程将详细介绍如何使用crontab进行定时任务的设置。 首先,crontab命令用于管理和编辑用户的...
本教程将深入探讨如何在ThinkPHP 5.1中配置和使用Crontab计划任务,即think-cron功能。 一、ThinkPHP 5.1中的定时任务 在ThinkPHP 5.1中,定时任务通常被称为计划任务,它们允许开发者设置定期执行的任务,而无需...
因此,"quartz/Cron/Crontab表达式在线生成工具"提供了一个方便的解决方案。这个纯HTML和CSS构建的工具可以帮助开发者快速生成和测试Cron表达式。通过输入期望的执行时间,工具会自动生成相应的Cron表达式,大大提高...
然而,题目中的“layui 定时器表达式”可能指的是更复杂的定时任务调度,例如基于Cron表达式进行的时间规划。 Cron表达式是一种强大的时间调度工具,广泛应用于Linux和Java等环境,用于配置计划任务。它由六个或七...
1. **cron服务**:cron服务持续运行,每分钟检查一次/etc/crontab和/var/spool/cron/目录下的所有用户crontab文件。如果发现有新的或更新的任务,它会按照指定的时间安排执行。 2. **crontab文件格式**:crontab文件...
golang 手写定时器 封装Cron 支持秒、分、小时、天。 支持多态。 说明: 1.DoCron() 方法初始化定时器 2.AddJob添加定时器 3.UpdateJob修改定时器 4.DeleteJob删除定时器 5.GetAllCrons获取定时器列表 6.支持多态 ...
通过web端管理任务,操作自动传至任务中心自动执行(支持启动、停止、删除操作),任务支持立即执行,指定时间段执行,支持二次开发,也可对接外部webapi实现和已有系统无缝对接,系统内置Cron表达式生成器 ...
在Linux系统中,Crontab(也称为cron table)是一个非常重要的工具,用于安排周期性的任务,例如定期备份、日志清理、系统维护等。在Linux CentOS 7(C7)环境中,通常使用RPM(Red Hat Package Manager)包管理系统...
Crontab的安装涉及两个关键的软件包,分别是`vixie-cron`和`cronie-anacron`。以下是关于这个主题的详细讲解。 首先,`vixie-cron`是Linux系统中标准的Cron服务,由Vixie先生开发,用于处理定时任务。这个包提供了...
这个包包含了`cron`服务的主要组件,包括用于定期执行任务的`cron`守护进程,以及用户级别的`crontab`命令,让用户可以添加、编辑和删除自己的定时任务。 而`crontabs-1.10-33.el6.noarch.rpm`软件包则是针对RHEL6...
Vue-Cron是一款基于Vue.js开发的时间周期(Cron)表达式组件,用于在前端应用程序中创建、编辑和处理定时任务。Vue-Cron旨在提供一种直观的用户界面,让用户能够通过图形化的方式设置复杂的Cron表达式,从而实现定时...
crontab定时器详解 crontab是一种定时器工具,用于在 Linux 系统中执行计划任务。它允许用户在指定的时间点执行特定的命令或脚本。crontab 的主要功能是根据用户的需求,自动执行计划任务,从而提高工作效率和自动...