ntp安裝及調(diào)整時(shí)區(qū)
1拓颓、安裝ntp服務(wù)軟件包:yum install ntp
2、將ntp設(shè)置為缺省啟動(dòng):systemctl enable ntpd
3符隙、修改啟動(dòng)參數(shù)面氓,增加-g -x參數(shù),允許ntp服務(wù)在系統(tǒng)時(shí)間誤差較大時(shí)也能正常工作:vi /etc/sysconfig/ntpd
4蜀变、啟動(dòng)ntp服務(wù):service ntpd restart 服務(wù)器用:systemctl restart ntpd.service
5悄谐、將系統(tǒng)時(shí)區(qū)改為上海時(shí)間(即CST時(shí)區(qū)):ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6、輸入date命令查看時(shí)間是否正確
查看系統(tǒng)時(shí)間date
查看硬件時(shí)間hwclock --show
修改系統(tǒng)時(shí)間date --set="07/07/06 10:19"
(月/日/年 時(shí):分:秒)
修改硬件時(shí)間hwclock --set --date="07/07/06 10:19"
(月/日/年 時(shí):分:秒)
重新啟動(dòng)系統(tǒng)库北,硬件時(shí)間會(huì)讀取系統(tǒng)時(shí)間爬舰,實(shí)現(xiàn)同步,不重啟時(shí)需要用hwclock或clock命令實(shí)現(xiàn)同步寒瓦。(hc代表硬件時(shí)間情屹,sys代表系統(tǒng)時(shí)間)
系統(tǒng)時(shí)鐘與硬件時(shí)鐘同步:hwclock --hctosys
或者clock --hctosys
硬件時(shí)鐘和系統(tǒng)時(shí)鐘同步:hwclock --systohc
或者clock --systohc
1.NTP簡(jiǎn)介
NTP(Network Time Protocol,網(wǎng)絡(luò)時(shí)間協(xié)議)是用來使網(wǎng)絡(luò)中的各個(gè)計(jì)算機(jī)時(shí)間同步的一種協(xié)議杂腰。它的用途是把計(jì)算機(jī)的時(shí)鐘同步到世界協(xié)調(diào)時(shí)UTC垃你,其精度在局域網(wǎng)內(nèi)可達(dá)0.1ms,在互聯(lián)網(wǎng)上絕大多數(shù)的地方其精度可以達(dá)到1-50ms喂很。(1s=1000ms) NTP服務(wù)器就是利用NTP協(xié)議提供時(shí)間同步服務(wù)的惜颇。
2.NTP原理
NTP客戶端可以定時(shí)自動(dòng)向NTP服務(wù)器發(fā)送請(qǐng)求來獲取時(shí)間,NTP服務(wù)器將時(shí)間發(fā)送給客戶端少辣。
3.NTP同步
為了避免主機(jī)時(shí)間因?yàn)殚L(zhǎng)期運(yùn)行下所導(dǎo)致的時(shí)間偏差凌摄,進(jìn)行時(shí)間同步(synchronize)的工作是非常必要的。Linux系統(tǒng)下漓帅,一般使用ntp服務(wù)器來同步不同機(jī)器的時(shí)間锨亏。一臺(tái)機(jī)器痴怨,可以同時(shí)是ntp服務(wù)端和ntp客戶端。在生產(chǎn)系統(tǒng)中器予,推薦使用像DNS服務(wù)器一樣分層的時(shí)間服務(wù)器來同步時(shí)間浪藻。
不同機(jī)器間同步時(shí)間,可以使用ntpdate命令(立即同步)乾翔,也可以使用ntpd服務(wù)(緩慢同步)爱葵。
1、ntpdate命令
如果系統(tǒng)里沒有這個(gè)命令反浓,表示沒有安裝相應(yīng)的程序:通過下面命令安裝:
[root@CentOS7 ~]# yum install ntpdate
CentOS6 或7 系統(tǒng)使用ntpdate比較簡(jiǎn)單钧惧。格式如下:
1 root@debian:~# ntpdate [NTP IP/hostname]
2 root@debian:~# ntpdate 192.168.0.1
3 root@debian:~# ntpdate pool.ntp.org
正確的時(shí)間更新顯示
[root@wmy ~]# ntpdate ntp1.aliyun.com 時(shí)間服務(wù)器 校對(duì)時(shí)間
6 Aug 09:01:26 ntpdate[32907]: step time server 120.25.115.20 offset 8.966838 sec
注意:如果此時(shí)ntpd服務(wù)已經(jīng)啟動(dòng),端口會(huì)被ntpd服務(wù)端占用勾习,此時(shí)ntpdate命令就不能手動(dòng)同步時(shí)間了, 這樣的同步,只是強(qiáng)制性的將系統(tǒng)時(shí)間與ntp服務(wù)器時(shí)間同步懈玻,機(jī)器的硬件時(shí)間不會(huì)同步巧婶,如果希望硬件時(shí)間和同步完的系統(tǒng)時(shí)間一直,可以通過hwclock -w
將硬件時(shí)間與系統(tǒng)時(shí)間同步涂乌。
使用ntpd服務(wù)艺栈,要好于ntpdate加cron的組合。因?yàn)椋?strong>ntpdate同步時(shí)間湾盒,會(huì)造成時(shí)間的跳躍湿右,對(duì)一些依賴時(shí)間的程序和服務(wù)會(huì)造成影響。比如sleep罚勾,timer等毅人。而且,ntpd服務(wù)可以在修正時(shí)間的同時(shí)尖殃,修正cpu tick丈莺。理想的做法為,在開機(jī)的時(shí)候送丰,使用ntpdate強(qiáng)制同步時(shí)間缔俄,在其他時(shí)候使用ntpd服務(wù)來同步時(shí)間。
要注意的是器躏,ntpd有一個(gè)自我保護(hù)設(shè)置: 如果本機(jī)與上源時(shí)間相差太大, ntpd不運(yùn)行. 所以新設(shè)置的時(shí)間服務(wù)器一定要先ntpdate從上源取得時(shí)間初值, 然后啟動(dòng)ntpd服務(wù)俐载。ntpd服務(wù)運(yùn)行后, 先是每64秒與上源服務(wù)器同步一次, 根據(jù)每次同步時(shí)測(cè)得的誤差值經(jīng)復(fù)雜計(jì)算逐步調(diào)整自己的時(shí)間, 隨著誤差減小, 逐步增加同步的間隔. 每次跳動(dòng), 都會(huì)重復(fù)這個(gè)調(diào)整的過程.
pool.ntp.org是什么,如何用登失?https://www.ntppool.org/zh/use.html
linux定時(shí)任務(wù)cron配置
定時(shí)任務(wù)摘自博客園-- 舒艾青 點(diǎn)擊上方可以查看原文
實(shí)現(xiàn)linux定時(shí)任務(wù)有:cron遏佣、anacron、at,使用最多的是cron任務(wù)
名詞解釋
cron--服務(wù)名壁畸;crond--linux下用來周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程贼急,與windows下的計(jì)劃任務(wù)類似茅茂;crontab--是定制好的計(jì)劃任務(wù)表
軟件包安裝
要使用cron服務(wù),先要安裝vixie-cron軟件包和crontabs軟件包太抓,兩個(gè)軟件包作用如下:
vixie-cron軟件包是cron的主程序空闲。crontabs軟件包是用來安裝、卸裝走敌、或列舉用來驅(qū)動(dòng) cron 守護(hù)進(jìn)程的表格的程序碴倾。
注:我在使用centos7的時(shí)候發(fā)現(xiàn)沒有cron的軟件包,只有crontabs的軟件包
查看是否安裝了cron軟件包: rpm -qa|grep vixie-cron
查看是否安裝了crontabs軟件包:rpm -qa|grep crontabs
如果沒有安裝掉丽,則執(zhí)行如下命令安裝軟件包(軟件包必須存在)
rpm -ivh vixie-cron-4.1-54.FC5*
rpm -ivh crontabs*
如果本地沒有安裝包跌榔,在能夠連網(wǎng)的情況下可以在線安裝
yum install vixie-cron
yum install crontabs
查看crond服務(wù)是否運(yùn)行
pgrep crond
或 /sbin/service crond status
或 ps -elf|grep crond|grep -v "grep"
crond服務(wù)操作命令
/sbin/service crond start
//啟動(dòng)服務(wù)
/sbin/service crond stop
//關(guān)閉服務(wù)
/sbin/service crond restart
//重啟服務(wù)
/sbin/service crond reload
//重新載入配置
配置定時(shí)任務(wù)
cron有兩個(gè)配置文件,一個(gè)是一個(gè)全局配置文件(/etc/crontab)捶障,是針對(duì)系統(tǒng)任務(wù)的僧须;一組是crontab命令生成的配置文件(/var/spool/cron下的文件),是針對(duì)某個(gè)用戶的.定時(shí)任務(wù)配置到任意一個(gè)中都可以项炼。
查看全局配置文件配置情況: cat /etc/crontab
查看用戶下的定時(shí)任務(wù):crontab -l
或cat /var/spool/cron/用戶名
crontab任務(wù)配置基本格式
* * * * command
分鐘(0-59) 小時(shí)(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分鐘1~59 每分鐘用或者 */1表示
第2列表示小時(shí)1~23(0表示0點(diǎn))
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)
第6列要運(yùn)行的命令
- 在以上任何值中担平,星號(hào)
*
可以用來代表所有有效的值。譬如锭部,月份值中的星號(hào)意味著在滿足其它制約條件后每月都執(zhí)行該命令暂论。 - 整數(shù)間的短線
-
指定一個(gè)整數(shù)范圍。譬如拌禾,1-4 意味著整數(shù) 1取胎、2、3湃窍、4闻蛀。 - 用逗號(hào)
,
隔開的一系列值指定一個(gè)列表。譬如坝咐,3, 4, 6, 8 標(biāo)明這四個(gè)指定的整數(shù)循榆。 - 正斜線
/
可以用來指定間隔頻率。在范圍后加上 /<integer> 意味著在范圍內(nèi)可以跳過 integer墨坚。譬如秧饮,0-59/2 可以用來在分鐘字段定義每?jī)煞昼姟ig隔頻率值還可以和星號(hào)一起使用泽篮。例如盗尸,*/3 的值可以用在月份字段中表示每三個(gè)月運(yùn)行一次任務(wù)。
注:開頭為井號(hào)(#)的行是注釋帽撑,不會(huì)被處理泼各。
使用實(shí)例
實(shí)例1:每1分鐘執(zhí)行一次command
命令:* * * * * command
實(shí)例2:每小時(shí)的第3和第15分鐘執(zhí)行
命令:3,15 * * * * command
實(shí)例3:在上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
命令:3,15 8-11 * * * command
實(shí)例4:每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
命令:3,15 8-11 */2 * * command
實(shí)例5:每個(gè)星期一的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
命令:3,15 8-11 * * 1 command
實(shí)例6:每晚的21:30重啟smb
命令:30 21 * * * /etc/init.d/smb restart
實(shí)例7:每月1、10亏拉、22日的4 : 45重啟smb
命令:45 4 1,10,22 * * /etc/init.d/smb restart
實(shí)例8:每周六扣蜻、周日的1 : 10重啟smb
命令:10 1 * * 6,0 /etc/init.d/smb restart
實(shí)例9:每天18 : 00至23 : 00之間每隔30分鐘重啟smb
命令:0,30 18-23 * * * /etc/init.d/smb restart
實(shí)例10:每星期六的晚上11 : 00 pm重啟smb
命令:0 23 * * 6 /etc/init.d/smb restart
實(shí)例11:每一小時(shí)重啟smb
命令:* */1 * * * /etc/init.d/smb restart
實(shí)例12:晚上11點(diǎn)到早上7點(diǎn)之間逆巍,每隔一小時(shí)重啟smb
命令:* 23-7/1 * * * /etc/init.d/smb restart
實(shí)例13:每月的4號(hào)與每周一到周三的11點(diǎn)重啟smb
命令:0 11 4 * mon-wed /etc/init.d/smb restart
實(shí)例14:一月一號(hào)的4點(diǎn)重啟smb
命令:0 4 1 jan * /etc/init.d/smb restart
實(shí)例15:每小時(shí)執(zhí)行/etc/cron.hourly目錄內(nèi)的腳本
命令:*01 * * * * root run-parts /etc/cron.hourly*
說明:run-parts去掉后面這個(gè)參數(shù),可以在后面加上要運(yùn)行的某個(gè)腳本名莽使。
Linux定個(gè)時(shí)任務(wù):ERROR (getpwnam() failed) 解決方法
首先: 到自己的 /etc/crontab看看你寫的任務(wù)正確與否锐极,這里要寫上用戶名, 其次: 重啟crontab 最終解決芳肌。
例如: cat /etc/crontab 里面的任務(wù):1 1 * * * root echo “哈哈” >> haha.txt
保存退出 service crond restart
或者/sbin/service crond restart
錯(cuò)誤的重點(diǎn)是灵再,你的命令有沒有用戶名,沒有加上就解決了亿笤。
[root@localhost ~]# ntpq -p
說明:
*表示目前使用的ntp server翎迁,這里選擇的本機(jī);
st:即stratum階層净薛,值越小表示ntp serve的精準(zhǔn)度越高汪榔;
when:幾秒前曾做過時(shí)間同步更新的操作;
Poll表示肃拜,每隔多少毫秒與ntp server同步一次揍异;
reach:已經(jīng)向上層NTP服務(wù)器要求更新的次數(shù);
delay:網(wǎng)絡(luò)傳輸過程鐘延遲的時(shí)間爆班;
offset:時(shí)間補(bǔ)償?shù)慕Y(jié)果;
jitter:Linux系統(tǒng)時(shí)間與BIOS硬件時(shí)間的差異時(shí)間