- 浏览: 2508226 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 10455有时候我们只需要执 ... -
haproxy 安装配置和负载实例
2015-03-27 11:49 11486一、环境说明实验环境 OS CentOS5.4 192.1 ... -
/dev/mapper/VolGroup00-LogVol00 100% 如何处理
2015-03-03 10:51 8090服务器磁盘跑满了, 命令查看 如下 [root@lo ... -
Tsar开源:淘宝内部大量使用的系统监控工具
2014-08-07 09:51 919Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告 ... -
Linux运维常用命令 (转载)
2013-01-31 10:23 24801 删除0字节文件find-type f - ... -
linux恢复 rm -rf 删除的文件:extundelete
2013-01-24 15:47 8856http://blog.csdn.net/pang6013 ... -
网站排障分析常用的命令
2013-01-21 18:17 1340------------------------------- ... -
迁移vmware服务器后Device eth0 does not seem to be present
2013-01-21 10:58 2196用VMware 安装 linux 6.0 ... -
LoadRunner如何监控Linux系统资源 : rpc.rstatd
2012-12-17 14:49 10209一 简述:LoadRunner监控Linux资源时弹出如下错误 ... -
僵尸Z进程和D进程
2012-12-10 16:47 13064-------------- 1 关于ZOMBIE进 ... -
Unix操作系统硬链接与符号链接的区别
2012-12-10 16:08 1962Unix操作系统有很多值得 ... -
nagios配置参数详解
2012-12-04 14:12 9375# Nagios return codes#定 ... -
nagios自定义监控nginx php和ip_conn
2012-12-03 17:57 3116自定义ip_conn.sh :http://zhume ... -
【汇总】shell show收藏
2012-11-29 14:03 1217================== shell从文本取对应的 ... -
Kickstart+PXE+DHCP+TFTP+NFS自动安装Centos5
2012-11-29 11:34 1554http://5ydycm.blog.51cto.com/11 ... -
haproxy+keepalived高可用负载均衡(七层)
2012-11-29 10:36 3953HAproxy是一款基于TCP( ... -
LVS+Keepalived
2012-11-29 10:10 1686http://www.linuxvirtualserver.o ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7512http://network.51cto.com/art/ ... -
运维架构师-并不遥远的彼岸
2012-11-28 17:45 1700在百度里搜索运维架构师,你会发现招聘的职位还不少并且月薪、年 ... -
puppet模块汇总
2012-11-21 17:08 2978在磁盘上,一个模块对应一个特殊的目录结构: MODULE_ ...
相关推荐
linux 配置定时任务, crontab -e 编辑的文本,用户任务定时器配置,目录位置在 /var/spool/cron中的root文件中
spring定时器cron表达式生成
在大多数系统上,你必须得到系统管理员权限才可以提交...一些共享的系统上,因为只有一个crontab文件,只有管理员访问 crontab命令。为了您的Webserve帐户中启用请求的 cron,请参阅美国印第安纳大学网管 的 cron页面。
本篇文章主要介绍了Go定时器cron的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要给大家介绍了关于Go语言中定时器cron使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
golang 手写定时器 封装Cron 支持秒、分、小时、天。 支持多态。 说明: 1.DoCron() 方法初始化定时器 2.AddJob添加定时器 3.UpdateJob修改定时器 4.DeleteJob删除定时器 5.GetAllCrons获取定时器列表 6.支持多态 ...
Centos crontab 定时任务安装源码
动态修改参数cron的值来实现Spring自带定时器动态的执行任务
cron的配置文件称为“crontab”,是“cron table”的简写。 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。 service crond start //启动服务 service crond stop //关闭服务 ...
cron 工作原理: cron 命令在系统启动时就由一个 shell 脚本自动启动,进入后台.... cron 服务的最低检测时间单位是分钟, 所以 cron 会每分钟读取一次 /var/spool/cron 与 /etc/crontab 中的数据内容.
crontab是linux操作系统定时任务执行工具,包含两个安装包 vixie-cron和crontabs
linux C7 crontab离线安装包
纯html+css 在线生成 cron表达式,最近5次运行时间接口采用:http://www.bejson.com的API. 欢迎下载使用。可以运用到自己的定时任务系统中。
vue-cron表达式组件
资源为js文件,下载后直接用script标签引入,需要解析时调用该js第一个方法,参数为cron定时器表达式字符串,例如:translateCRONToChinese("0 0 12 */1 * ?");
实现思路详见:https://blog.csdn.net/qq_33901011/article/details/100155334 该工程用C语言实现了crontab...里面用到了Linux源码中的Crond.c的ParseField函数来解析crontab表达式,基姆拉尔森计算公式计算星期等。
quartz通过cron实现web项目定时器;这是个maven项目,通过quartz架构是现在不同cron表达式定时启动。
cron-parser, 用于解析crontab指令的node.js 库 解析器 用于解析crontab指令的Node.js 库。 它包括对时区和DST转换的支持。安装npm install cron-parser支持格式* * * * * *┬ ┬ ┬ ┬ ┬ ┬│
Plan 是一个简单化管理 crontab 和 cronjob 的 Python 库。Plan 是编写和部署 cronjob 的 Python 库,能把 Python 代码转换成 cron 语法的代码。用户可以轻松的管理 cron job。 主要特性如下: 只需一个命令就可以...