Linux配置自动时间同步

linux下时间同步的两种方法分享

tail -f /var/log/cron

linux下定时执行任务的方法 

在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出。

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。

cron的配置文件称为“crontab”,是“cron table”的简写。

一、cron在3个地方查找配置文件:
1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。
一般一个用户最多只有一个crontab文件。

二、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

三、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

四、权限
crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下: 
1、如果两个文件都不存在,则只有root用户才能使用crontab命令。 
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。 
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。 
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,
以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。

在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
    每个域之间使用空格或者制表符分隔。格式如下: 
  minute hour day-of-month month-of-year day-of-week commands 
    合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday) commands(代表要执行的脚本)
    除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

基本格式 :

*****command

分  时  日  月  周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

crontab文件的一些例子:

#每晚的21:30重启apache。

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每月1、10、22日

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

#每天早上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

很多时候,我们计划任务需要精确到秒来执行,根据以下方法,可以很容易地以秒执行任务。
以下方法将每10秒执行一次
 
1
2
3
4
5
6
7
# crontab -e
* * * * * /bin/date >>/tmp/date.txt
* * * * * sleep 10/bin/date >>/tmp/date.txt
* * * * * sleep 20/bin/date >>/tmp/date.txt
* * * * * sleep 30/bin/date >>/tmp/date.txt
* * * * * sleep 40/bin/date >>/tmp/date.txt
* * * * * sleep 50/bin/date >>/tmp/date.txt

  

 
 
注意如果用如果命令用到%的话需要用\转义
1
2
3
# backup mysql
00 01 * * * mysqldump -u root --password=passwd-d mustang > /root/backups/mustang_$(date +\%Y\%m\%d_\%H\%M\%S).sql
01 01 * * * mysqldump -u root --password=passwd-t mustang > /root/backups/mustang-table_$(date +\%Y\%m\%d_\%H\%M\%S).sql
 
 
 
 

使用date命令即可设置系统时间。

1  、查看系统时间

date

2、设置当前系统时间为2017年2月20日12点57分0秒

date  -s "2017-2-20 12:57:00"

执行结果如下图所示:

 
 
 
 

Linux时间同步解决方案

由于硬件的原因,机器或多或少的根标准时间对不上,一个月的误差几秒到几分钟不等。对于服务器来说时间不准,会有很多麻烦。例如,支付的时候,无法下单,游戏无法登录等。自己用的PC就无所谓了,手动改一下就行了
 

一,用ntpdate从时间服务器更新时间

如果你的linux系统根本没有ntpdate这个命令

yum install ntp

安装完了之后,你不要做什么配置,也不需要,直接测试一下

复制代码

代码如下:

[root@localhost ~]# ntpdate time.nist.gov 
22 Oct 21:11:43 ntpdate[5014]: adjust time server 207.200.81.113 offset -0.018788 sec

如果出去上面的内容说明,同步成功了。然后在crontab里面加上以下内容。

1.*/10 * * * * ntpdate time.nist.gov   #域名或IP

每隔十分钟同步一次。推荐几个时间服务器。

time.nist.gov
time.nuri.net
asia.pool.ntp.org
asia.pool.ntp.org
asia.pool.ntp.org
asia.pool.ntp.org

二,用ntp搭建自己的时间服务器

上面我们是利用别人的时间服务器来同步时间,这些时间服务器都是比较权威的。当我们自己搭建时间服务器就不用crontab来定时去跑。

1,安装时间服务器ntp

1.yum install ntp

2,配置ntp

复制代码

代码如下:

[root@localhost ~]# cat /etc/ntp.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'
restrict default ignore //默认不允许修改或者查询ntp,并且不接收特殊封包
restrict 127.0.0.1 //给于本机所有权限
restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify //给于局域网机的机器有同步时间的权限
server time.nist.gov prefer //设置时间服务器,加prefer表示优先
server 0.asia.pool.ntp.org 
server 1.asia.pool.ntp.org 
server 2.asia.pool.ntp.org 
server 127.127.1.0 # local clock 
fudge 127.127.1.0 stratum 10 
driftfile /var/lib/ntp/drift 
keys /etc/ntp/keys

3,启动 ntp

[root@localhost ~]# /etc/init.d/ntpd start

4,查看并测试

复制代码

代码如下:

[root@localhost ~]# netstat -upnl |grep ntpd //查看时程
[root@localhost ~]# ntpq -pn //查看同步的服务器IP
remote refid st t when poll reach delay offset jitter 
============================================================================== 
50.77.217.185 .INIT. 16 u - 64 0 0.000 0.000 0.000 
202.90.158.4 .INIT. 16 u - 64 0 0.000 0.000 0.000 
202.71.100.89 .INIT. 16 u - 64 0 0.000 0.000 0.000 
202.134.1.10 .INIT. 16 u - 64 0 0.000 0.000 0.000 
*127.127.1.0 .LOCL. 10 l 18 64 377 0.000 0.000 0.001 
[root@localhost ~]# ntpstat //同步的结果
synchronised to local net at stratum 11 
time correct to within 12 ms 
polling server every 512 s

remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由“+”则代表目前正在作用钟的上层NTP,如果是“*”则表示也有连上线,不过是作为次要联机的NTP主机。
refid:参考的上一层NTP主机的地址
st:即stratum阶层
when:几秒前曾做过时间同步更新的操作
poll:下次更新在几秒之后
reach:已经向上层NTP服务器要求更新的次数
delay:网络传输过程钟延迟的时间
offset:时间补偿的结果
jitter:Linux系统时间与BIOS硬件时间的差异时间

推荐第一种方法,虽然搭建个时间服务器,还是比较简单的,但是我觉得没有这个必要。如果用别人的时间服务器,每隔10分钟同步一次,可以精确到毫秒。

作者:海底苍鹰

CentOS系统时间与UTC时间不一致的解决方法

装好centos 发现date不是咱想要的那个时间,肿么办

1、vi /etc/sysconfig/clock   #编辑时间配置文件

ZONE="Asia/Shanghai"
     UTC=false                          #设置为false,硬件时钟不于utc时间一致
     ARC=false

2、ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime    #linux的时区设置为上海时区

3、ntpdate 192.43.244.18    #对准时间

如果没有安装ntp服务器,刚需要先执行以下命令:

yum install ntp #安装ntp服务器

4、/sbin/hwclock --systohc   #设置硬件时间和系统时间一致并校准

好了,我们的CentOS linux系统时间和计算机硬件时间终于都是cst时间了,并且都是上海时区,终于是正常啦。

centos vps修改时间及时区不同步 终极解决方案

由于初次使用国内hyper-v架构的VPS而且买前要指定装windows还是centos系统,因为木有重装的面板,对于用惯debian的我真是折磨,操作过程中遇到各种小问题。问客服直接一句只懂winows环境,让你装WIN你非要装linux。好吧centos只能自己摸索了。由于hyper-v是微软的一款虚拟化产品,早先是不支持linux的,又因为debian的公司化运营,使debian进入高速发展阶段,就连google也抛弃linux定制而转入debian开发阵营,这让微软感到了一些的压力,于是乎微软拉上centos,这就是为什么hyper-v只支持centos,而不支持其它linux衍生版本了,而且支持的还不是那么靠谱。吐槽完,那就来看正题吧。

  正题:hyper-v架构的centos5.5 VPS 装完lnmp时间不同步,导致网站某些功能无法使用。

  网上找了各种方法均告失败。然后自己又仔细找了一些文档终于搞定了,泪奔啊。

  linux的时间管理很奇怪他分为系统时间和硬件时间还细分成什么UTC时间。-_-|||。

  硬件时间从根本上讲是CMOS时钟

  linux查看硬件时间:hwclock --show

  linux查看系统时间:date -R

  centos VPS的时间及时区同步。

  系统时间部分:

  1. 编辑时区配置文件:vi /etc/sysconfig/clock

  ZONE="Asia/Shanghai"

  UTC=false #把UTC设置为false关闭状态

  ARC=false

  2.运行如下命令

  #删除默认配置

  rm -rf /etc/localtime

  #重新指定配置

  ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  #同步系统时间

  ntpdate -u pool.ntp.org

  3.硬件时间部分:

  #将硬件时间调整成与目前的系统时钟一致。

  hwclock --systohc
  或clock --systohc

  #强制系统时间写入CMOS中防止重启失效

  hwclock -w
  或clock -w

  以上步骤虽然成功了但是我这hyper-v架构的centos系统时间走的不准,1天能快几分钟的样子。

  用crontab来同步一下时间即可解决。

  #编辑计划任务表

  vi /etc/crontab

  #表中最后添加下面这行内容

  30 5 * * * root /usr/sbin/ntpdate -u pool.ntp.org && /sbin/clock --systohc

  #每天5点半同步时间,clock --systohc是硬盘时间同步系统时间的意思。

如何查看crontab定时任务是否执行

http://jingyan.baidu.com/article/73c3ce28e7b298e50343d925.html

Linux定时任务工具crontab详解及系统时间同步的更多相关文章

  1. Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  2. Linux 性能测试工具Lmbench详解

    Linux 性能测试工具Lmbench详解 2010-06-04 16:07 佚名 评测中心 字号:T | T Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定 ...

  3. linux命令之crontab详解

    crontab命令: crontab -l : 显示定时任务列表 crontab -e: 编辑定时任务 crontab -r : 删除所有定时任务 基本格式 :  * * * * * command  ...

  4. Linux htop工具使用详解

    一.Htop的使用简介 大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为top的增强版,相比top其有着很多自身的优势.如下: 两者相比起来,top比较繁琐 默认 ...

  5. Linux htop工具使用详解【转】

    原文地址: http://www.cnphp6.com/archives/65078 一.Htop的使用简介 大家可能对top监控软件比较熟悉,今天我为大家介绍另外一个监控软件Htop,姑且称之为to ...

  6. 【Python】Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在 ...

  7. (总结)Linux下的暴力密码在线破解工具Hydra详解

    (总结)Linux下的暴力密码在线破解工具Hydra详解 学习了:https://blog.csdn.net/yafeichang/article/details/53502869

  8. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 >.vi: 全称Visual editor,即文本编辑 ...

  9. 自动化运维工具——ansile详解

    自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...

随机推荐

  1. iOSCollectioView滚动到指定section的方法

    CollectioView滚动到指定section的方法   项目中的需求:collectionView顶部有一个scrollView组成的标签,点击标签,让collectionView滚动到指定的行 ...

  2. 命令行todo神器taskwarrior使用简介

    简介 taskwarrior是一个命令行的任务管理神器,同时也有服务端,支持同步. 语法规则为 安装 Linux上可以直接软件包管理器安装 Window可以用cygwin Mac可以用homebrew ...

  3. spring mvc之启动过程源码分析

    简介 这两个星期都在看spring mvc源码,看来看去还是还是很多细节没了解清楚,在这里把看明白的记录下,欢迎在评论中一起讨论. 一.铺垫 spring mvc是基于servlet的,在正式分析之前 ...

  4. poj 2482 Stars in Your Window (线段树扫描线)

    题目大意: 求一个窗体覆盖最多的星星的权值. 思路分析: 每个星星看成 左下点为x y 右上点为x+w-1 y+h-1 的矩形. 然后求出最大覆盖的和. #include <cstdio> ...

  5. Sphinx/Coreseek 4.1的安装流程

    yum install mysql-devel libxml2-devel expat-devel cd /data/software/ wget http://www.coreseek.cn/upl ...

  6. PHP输入流php://input与$_POST、$_GET

    Content-Type的取值会影响php的输入流 学习笔记 1,Content-Type仅在取值为application/x-www-data-urlencoded和multipart/form-d ...

  7. html绝对路径与相对路径

    文件,图片和html文档同一个目录的直接写文件名即可(相对路径). 工作中一般使用相对路径,项目放到服务器上部署不能保证绝对路径不出错.

  8. jython 2.7.1 版本开发历史

    很多技术一直感兴趣,在工作中没有太多实践的机会,但可以持续关注.Jython最初是Python on JVM,所以最初的名称是JPython,后续由于基于JVM可以有更多可能性,名字改为Jython. ...

  9. require.js+knockout.js+.underscore模板引擎的使用

    第一种使用方式: HTML: <ul data-bind="template: { name: 'peopleList' }"></ul> <scri ...

  10. #pragma alloc_text

    #pragma alloc_text 编译时控制分页能力 有时,驱动程序的某些部分必须驻留内存而另一些可以被分页,这就需要一种能控制代码和数据是否分页的方法.通过指导编译器的段分配可以实现这个目的.在 ...