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
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時間同步解決方案
一,用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