新聞中心
Linux是一個開放、免費的操作系統(tǒng),在開源社區(qū)中擁有大量的支持者,被廣泛使用于服務器、嵌入式系統(tǒng)等領(lǐng)域。隨著Linux的不斷發(fā)展,其系統(tǒng)啟動速度也越來越快。但是,在啟動過程中,如果出現(xiàn)突然斷電等異常情況,就可能造成文件系統(tǒng)的數(shù)據(jù)損壞。為了解決這個問題,Linux提供了sync命令,讓我們可以在開機時自動進行數(shù)據(jù)同步,保護文件系統(tǒng)的完整性。

目前創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、網(wǎng)站托管、服務器托管、企業(yè)網(wǎng)站設計、凌云網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
本文將介紹Linux啟動時的自動同步機制,以及如何使用sync命令進行同步操作。
一、Linux啟動自動同步
在Linux啟動時,系統(tǒng)會自動掛載文件系統(tǒng),并啟動各種服務程序。這個過程可能需要一些時間,因此我們需要一種機制來保護系統(tǒng)在啟動時不受意外干擾。這個機制就是自動同步。
自動同步是指系統(tǒng)在啟動時自動進行數(shù)據(jù)同步操作,確保文件系統(tǒng)的完整性。Linux系統(tǒng)有兩種自動同步機制:
1.硬件自動同步
硬件自動同步是指通過硬件機制來實現(xiàn)同步操作。當硬件檢測到停電等異常情況時,它會發(fā)送一個信號給系統(tǒng),通知系統(tǒng)存儲器需要自動同步。這個機制在許多現(xiàn)代計算機中已經(jīng)內(nèi)置,并且大多數(shù)Linux發(fā)行版都默認開啟了這個機制。
2.軟件自動同步
軟件自動同步是指使用軟件程序來進行同步操作。在Linux系統(tǒng)中,使用sync命令實現(xiàn)軟件自動同步。sync命令能夠在系統(tǒng)啟動時自動進行數(shù)據(jù)同步,保證文件系統(tǒng)的完整性。
二、Linux同步命令:sync
sync命令是在Linux系統(tǒng)中用來進行緩存同步操作的命令。這個命令用來在內(nèi)存中的緩存數(shù)據(jù)和已經(jīng)寫入磁盤文件的數(shù)據(jù)之間進行同步操作。這樣可以確保數(shù)據(jù)可靠完整地存儲在磁盤中。
sync命令是一個非常簡單的命令,只需要在命令行中輸入sync即可。在系統(tǒng)啟動時,如果開啟了軟件自動同步機制,系統(tǒng)會自動執(zhí)行sync命令進行數(shù)據(jù)同步操作。
除了系統(tǒng)啟動時的自動同步,在Linux系統(tǒng)中還可以手動執(zhí)行sync命令進行數(shù)據(jù)同步操作。在運行一些重要操作前,更好手動進行一次同步操作,確保硬盤中的數(shù)據(jù)和內(nèi)存中的數(shù)據(jù)是一致的。
三、同步操作對文件系統(tǒng)的影響
同步操作對文件系統(tǒng)有哪些影響呢?同步操作可能會損失一些性能。同步操作需要耗費一定的時間和CPU資源,因此在執(zhí)行同步操作期間,系統(tǒng)的性能可能會有所下降。
同步操作可以保護文件系統(tǒng)的完整性。如果沒有同步操作,當系統(tǒng)出現(xiàn)斷電等異常情況時,磁盤上的某些數(shù)據(jù)可能還沒有寫入磁盤中。這些未寫入磁盤的數(shù)據(jù)可能是一些重要的系統(tǒng)文件,如果出現(xiàn)故障可能會導致系統(tǒng)無法啟動。因此,在啟動Linux系統(tǒng)時,一定要開啟自動同步機制,以保護文件系統(tǒng)的完整性。
四、如何開啟自動同步機制
在Linux系統(tǒng)中,默認開啟了硬件自動同步機制。如果需要開啟軟件自動同步機制,可以通過以下步驟進行:
1.打開/etc/fstab文件,找到需要啟用軟件自動同步的文件系統(tǒng)。
2.在該文件系統(tǒng)的行內(nèi)加入sync選項。
例如:
/dev/mapper/centos-root / ext4 defaults 1 1
在該行后面加入sync選項:
/dev/mapper/centos-root / ext4 defaults,sync 1 1
3.保存文件并退出。
經(jīng)過以上操作,文件系統(tǒng)就會在啟動時自動進行數(shù)據(jù)同步操作,確保文件系統(tǒng)的完整性。
在Linux系統(tǒng)中,同步操作是非常重要的,可以保護文件系統(tǒng)的完整性,避免出現(xiàn)數(shù)據(jù)損壞等問題。Linux提供了硬件自動同步和軟件自動同步兩種機制,我們可以通過sync命令來進行軟件自動同步操作。在啟動Linux系統(tǒng)時,一定要開啟自動同步機制,以保護文件系統(tǒng)的完整性。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!
Linux sync命令的作用有哪些
sync – 強制將內(nèi)存中的文件緩沖內(nèi)容寫到磁盤。
可以同步數(shù)據(jù),要是加上notify的話就可以達到實時同步數(shù)據(jù)的效果了
怎樣開啟linux系統(tǒng)下的ntp同步請求
Linux 系統(tǒng)安裝配置NTP時間服務器
NTP(The Network Time Protocol) 是網(wǎng)絡時間協(xié)議,用以同步網(wǎng)絡內(nèi)計算機的時間。
它通過udp包交換,用特定算法進行協(xié)商,從而把計算機上的時間與時間服務器上的
時間保持一致。通過互聯(lián)網(wǎng)它支持的誤差是10毫秒,局域網(wǎng)則可以達到200微秒。
NTP時間服務器分為多層,從0層到4層,每層依次與上一次服務器同步,更高層的服務器
則直接連接一個高精度的時鐘設備,比如原子鐘、GPS或者電波時等。
自己搭建時間服務器需要指定一個上層的時間服務器,然后它可以向局域網(wǎng)內(nèi)的其它機器
提供同步服務。
詳細信息可以見:
安裝NTP Server
Linux系統(tǒng)內(nèi)核提供了對NTP的支持,因此只需要再安裝一個NTP Server的守護進程即可。
常用的ntpd由ntp.org提供。
下載安裝ntpd的穩(wěn)定版本。目前是ntp-4.2.6p3.
示范差隱腳本::
wget
tar zxf ntp-4.2.6p3.tar.gz
mkdir /app/ntp
cd ntp-4.2.6p3
./configure –prefix=/app/ntp –enable-all-clocks –enable-parse-clocks
make clean && make check && make && make intall
注意:/app/ntp為ntpd的安裝后文件路徑
配置
1. 配置文件位置為::
/etc/ntp.conf
2. 修改配置允許局域網(wǎng)內(nèi)機器與該服孫仿務器進行時間同步。
將下面語句::
restrict default kod nomodify notrap nopeer noquery
修改為::
restrict default nomodify
3. 修改上一層的時間服務器。
ntp.org現(xiàn)在提供NTP POOL PROJECT,即ntp 服務器池項目。在中國區(qū)域,配置如下即可::
server 0.cn.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
其中0.cn 是中國服務器池,后面兩個是亞洲的服務器池。
最新列表見:
啟動 NTP 服務器
進入ntpd安裝后的路徑,如/app/ntd, 啟動參數(shù)如下::
./ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid -l /app/ntp/log/ntp.log
注意啟動后需要等幾分鐘,否則其它機器來同步時會得到
no server suitable for synchronization found
的錯誤。虛凱廳
Linux客戶端機器配置
客戶端機器使用ntpdate 程序來執(zhí)行同步。 格式如下::
ntpdate ntp-server-ip
如果需要配置計劃任務,命令如下::
# 查看是否已經(jīng)添加時間同步的計劃任務
cat /etc/crontab
# 如果沒有則添加下列行,每30分鐘同步一次:
echo ‘*/30 * * * * root /usr/in/ntpdate 10.20.219.43’ >> /etc/crontab
# 將計劃任務設為自動,默認是啟動的【可選】
chkconfig crond on
# 啟動計劃任務服務
service crond restart
# 有些機器需要設置時區(qū)為中國
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Linux下glibc提供了我們事先編譯好的許多timezone文件, 他們就放在/usr/share/zoneinfo這個目錄下,這里基本涵蓋了大部分的國家和城市
# ls -F /usr/share/zoneinfo/
Africa/ Chile/ Factory Iceland Mexico/ posix/ Universal
America/ CST6CDT GBIndian/ Mideast/ posixrules US/
Antarctica/ Cuba GB-Eire IranMSTPRCUTC
Arctic/ EET GMTiso3166.tab MST7MDT PST8PDT WET
Asia/Egypt GMTIsraelNavajo right/ W-SU
Atlantic/ Eire GMTJamaica NZROCzone.tab
Australia/ EST GMT+JapanNZ-CHAT ROKZulu
Brazil/ EST5EDT Greenwich Kwajalein Pacific/ Singapore
Canada/ Etc/ Hongkong LibyaPoland Turkey
CETEurope/ HSTMETPortugal UCT
在這里面我們就可以找到自己所在城市的time zone文件. 那么如果我們鎮(zhèn)友想查看對于每個time zone當前的時間我們可以用zdump命令
# zdump Hongkong
Hongkong Fri Jul 6 06:13:HKT
那么我們又怎么來告訴系統(tǒng)我們所在time zone是哪個呢? 方法有很多,這里舉出兩種 之一個就是修改/etc/localtime這個文件,這個文件定義了我么所在的local time zone. 我們可以在/usr/share/zoneinfo下御野槐找到我們的time zone文件然后拷貝去到/etc/localtimezone(或者做個symbolic link) 假設我們現(xiàn)在的time zone是BST(也就是英國的夏令時間,UTC+1)
# date
Thu Jul 5 23:33:40 BST 2023
我們想把time zone換成上海所在的時區(qū)就可以這么做
# ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
# date
Fri Jul 6 06:35:52 CST 2023
這樣時區(qū)就改過來了(注意時間也做了相應的調(diào)整) 第二種方法也就設置TZ環(huán)境變量的值. 許多程序和命令都會用到這個變量的值. TZ的值可以有多種格式,最簡單的設置方法就是使用tzselect命令
# tzselect
…
TZ=’America/Los_Angeles’;export TZ
tzselect會讓你選擇所在的國家脊巧和城市(我省略了這些步驟),最后輸出相應的TZ變量的值.那么如果你設置了TZ的值之后時區(qū)就又會發(fā)生變化
# date
Thu Jul 5 15:48:11 PDT 2023
通過這兩個例子我們也可以發(fā)現(xiàn)TZ變量的值會override /etc/localtime. 也就是說當TZ變量沒有定義的時候系統(tǒng)才使用/etc/localtime來確定time zone. 所以你想永久修改time zone的話那么可以把TZ變量的設置寫入/etc/profile里 好了現(xiàn)在我們知道怎么設置時區(qū)了,下面我們就來看看如何設置Linux的時間吧 3. Real Time Clock(RTC) and System Clock 說道設置時間這里還要明確另外一個概念就是在一臺計算機上我們有兩個時鐘:一個稱之為硬件時間時鐘(RTC),還有一個稱之為系統(tǒng)時鐘(System Clock) 硬件時鐘是指嵌在主板上的特殊的電路, 它的存在就是平時我們關(guān)機之后還可以計算時間的原因 系統(tǒng)時鐘就是操作系統(tǒng)的kernel所用來計算時間的時鐘. 它從1970年1月1日00:00:00 UTC時間到目前為止秒數(shù)總和的值 在Linux下系統(tǒng)時間在開機的時候會和硬件時間同步(synchronization),之后也就各自獨立運行了 那么既然兩個時鐘獨自運行,那么時間久了必然就會產(chǎn)生誤差了,下面我們來看一個例子
# date
Fri Jul 6 00:27:13 BST 2023
# hwclock –show
Fri 06 Jul:27:17 AM BST -0.seconds
通過hwclock –show命令我們可以查看機器上的硬件時間(always in local time zone), 我們可以看到它和系統(tǒng)時間還是有一定的誤差的, 那么我們就需要把他們同步 如果我們想要把硬件時間設置成系統(tǒng)時間我們可以運行以下命令
# hwclock –hctosys
反之,我們也可以把系統(tǒng)時間設置成硬件時間
# hwclock –systohc
那么如果想設置硬件時間我們可以開機的時候在BIOS里設定.也可以用hwclock命令
# hwclock –set –date=”mm/dd/yy hh:mm:ss”
如果想要修改系統(tǒng)時間那么用date命令就最簡單了
# date -s “dd/mm/yyyy hh:mm:ss”
現(xiàn)在我們知道了如何設置系統(tǒng)和硬件的時間. 但問題是如果這兩個時間都不準確了怎么辦? 那么我們就需要在互聯(lián)網(wǎng)上找到一個可以提供我們準確時間的服務器然后通過一種協(xié)議來同步我們的系統(tǒng)時間,那么這個協(xié)議就是NTP了. 注意接下去我們所要說的同步就都是指系統(tǒng)時間和網(wǎng)絡服務器之間的同步了 4. 設置NTP Server前的準備 其實這個標題應該改為設置”NTP Relay Server”前的準備更加合適. 因為不論我們的計算機配置多好運行時間久了都會產(chǎn)生誤差,所以不足以給互聯(lián)網(wǎng)上的其他服務器做NTP Server. 真正能夠精確地測算時間的還是原子鐘. 但由于原子鐘十分的昂貴,只有少部分組織擁有, 他們連接到計算機之后就成了一臺真正的NTP Server. 而我們所要做的就是連接到這些服務器上同步我們系統(tǒng)的時間,然后把我們自己的服務器做成NTP Relay Server再給互聯(lián)網(wǎng)或者是局域網(wǎng)內(nèi)的用戶提供同步服務 好了,前面講了一大堆理論,現(xiàn)在我們來動手實踐一下吧. 架設一個NTP Relay Server其實非常簡單,我們先把需要的RPM包裝上
# rpm -ivh ntp-4.2.2p1-5.el5.rpm
那么之一步我們就要找到在互聯(lián)網(wǎng)上給我們提供同步服務的NTP Server
是NTP的官方網(wǎng)站,在這上面我們可以找到離我們城市最近的NTP Server. NTP建議我們?yōu)榱吮U蠒r間的準確性,最少找兩個個NTP Server 那么比如在英國的話就可以選擇下面兩個服務器 0.uk.pool.ntp.org 1.uk.pool.ntp.org 它的一般格式都是number.country.pool.ntp.org 第二步要做的就是在打開NTP服務器之前先和這些服務器做一個同步,使得我們機器的時間盡量接近標準時間. 這里我們可以用ntpdate命令
# ntpdate 0.uk.pool.ntp.org
6 Jul 01:21:49 ntpdate: step time server 213.222.193.35 offset.sec
# ntpdate 0.pool.ntp.org
6 Jul 01:21:56 ntpdate: adjust time server 213.222.193.35 offset -0.sec
假如你的時間差的很離譜的話之一次會看到調(diào)整的幅度比較大,所以保險起見可以運行兩次. 那么為什么在打開NTP服務之前先要手動運行同步呢? 1. 因為根據(jù)NTP的設置,如果你的系統(tǒng)時間比正確時間要快的話那么NTP是不會幫你調(diào)整的,所以要么你把時間設置回去,要么先做一個手動同步 2. 當你的時間設置和NTP服務器的時間相差很大的時候,NTP會花上較長一段時間進行調(diào)整.所以手動同步可以減少這段時間 5. 配置和運行NTP Server 現(xiàn)在我們就來創(chuàng)建NTP的配置文件了, 它就是/etc/ntp.conf. 我們只需要加入上面的NTP Server和一個driftfile就可以了
# vi /etc/ntp.conf
server 0.uk.pool.ntp.org
server 1.uk.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
非常的簡單. 接下來我們就啟動NTP Server,并且設置其在開機后自動運行
# /etc/init.d/ntpd/start
# chkconfig –level 35 ntpd on
6. 查看NTP服務的運行狀況 現(xiàn)在我們已經(jīng)啟動了NTP的服務,但是我們的系統(tǒng)時間到底和服務器同步了沒有呢? 為此NTP提供了一個很好的查看工具: ntpq (NTP query) 我建議大家在打開NTP服務器后就可以運行ntpq命令來監(jiān)測服務器的運行.這里我們可以使用watch命令來查看一段時間內(nèi)服務器各項數(shù)值的變化
# watch ntpq -p
Every 2.0s: ntpq -p Sat Jul 7 00:41:
remoterefid st t when poll reach delay offset jitter
==============================================================================
+193.60.199..62.22.u7 8…032
*mozart.musicbox 192.5.41.u7 19…411
現(xiàn)在我就來解釋一下其中的含義 remote: 它指的就是本地機器所連接的遠程NTP服務器 refid: 它指的是給遠程服務器(e.g. 193.60.199.75)提供時間同步的服務器 st: 遠程服務器的級別. 由于NTP是層型結(jié)構(gòu),有頂端的服務器,多層的Relay Server再到客戶端. 所以服務器從高到低級別可以設定為1-16. 為了減緩負荷和網(wǎng)絡堵塞,原則上應該避免直接連接到級別為1的服務器的. t: 這個…..我也不知道啥意思^_^ when: 我個人把它理解為一個計時器用來告訴我們還有多久本地機器就需要和遠程服務器進行一次時間同步 poll: 本地機和遠程服務器多少時間進行一次同步(單位為秒). 在一開始運行NTP的時候這個poll值會比較小,那樣和服務器同步的頻率也就增加了,可以盡快調(diào)整到正確的時間范圍.之后poll值會逐漸增大,同步的頻率也就會相應減小 reach: 這是一個八進制值,用來測試能否和服務器連接.每成功連接一次它的值就會增加 delay: 從本地機發(fā)送同步要求到服務器的round trip time offset: 這是個最關(guān)鍵的值, 它告訴了我們本地機和服務器之間的時間差別. offset越接近于0,我們就和服務器的時間越接近 jitter: 這是一個用來做統(tǒng)計的值. 它統(tǒng)計了在特定個連續(xù)的連接數(shù)里offset的分布情況. 簡單地說這個數(shù)值的絕對值越小我們和服務器的時間就越精確 那么大家細心的話就會發(fā)現(xiàn)兩個問題: 之一我們連接的是0.uk.pool.ntp.org為什么和remote server不一樣? 第二那個最前面的+和*都是什么意思呢? 之一個問題不難理解,因為NTP提供給我們的是一個cluster server所以每次連接的得到的服務器都有可能是不一樣.同樣這也告訴我們了在指定NTP Server的時候應該使用hostname而不是IP 第二個問題和之一個相關(guān),既然有這么多的服務器就是為了在發(fā)生問題的時候其他的服務器還可以正常地給我們提供服務.那么如何知道這些服務器的狀態(tài)呢? 這就是之一個記號會告訴我們的信息 * 它告訴我們遠端的服務器已經(jīng)被確認為我們的主NTP Server,我們系統(tǒng)的時間將由這臺機器所提供 + 它將作為輔助的NTP Server和帶有*號的服務器一起為我們提供同步服務. 當*號服務器不可用時它就可以接管 – 遠程服務器被clustering algorithm認為是不合格的NTP Server x 遠程服務器不可用 了解這些之后我們就可以實時監(jiān)測我們系統(tǒng)的時間同步狀況了 7. NTP安全設置 運行一個NTP Server不需要占用很多的系統(tǒng)資源,所以也不用專門配置獨立的服務器,就可以給許多client提供時間同步服務, 但是一些基本的安全設置還是很有必要的 那么這里一個很簡單的思路就是之一我們只允許局域網(wǎng)內(nèi)一部分的用戶連接到我們的服務器. 第二個就是這些client不能修改我們服務器上的時間 在/etc/ntp.conf文件中我們可以用restrict關(guān)鍵字來配置上面的要求 首先我們對于默認的client拒絕所有的操作
restrict default kod nomodify notrap nopeer noquery
然后允許本機地址一切的操作
restrict 127.0.0.1
最后我們允許局域網(wǎng)內(nèi)所有client連接到這臺服務器同步時間.但是拒絕讓他們修改服務器上的時間
restrict 192.168.1.0 mask 255.255.255.0 nomodify
把這三條加入到/etc/ntp.conf中就完成了我們的簡單配置. NTP還可以用key來做authenticaiton,這里就不詳細介紹了 8. NTP client的設置 做到這里我們已經(jīng)有了一臺自己的Relay Server.如果我們想讓局域網(wǎng)內(nèi)的其他client都進行時間同步的話那么我們就都應該照樣再搭建一臺Relay Server,然后把所有的client都指向這兩臺服務器(注意不要把所有的client都指向Internet上的服務器). 只要在client的ntp.conf加上這你自己的服務器就可以了
server ntp1.leonard.com
關(guān)于linux sync 開機的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
四川成都云服務器租用托管【創(chuàng)新互聯(lián)】提供各地服務器租用,電信服務器托管、移動服務器托管、聯(lián)通服務器托管,云服務器虛擬主機租用。成都機房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗、開啟建站+互聯(lián)網(wǎng)銷售服務,與企業(yè)客戶共同成長,共創(chuàng)價值。
網(wǎng)站名稱:Linux啟動自動同步:了解sync開機命令(linuxsync開機)
文章來源:http://m.fisionsoft.com.cn/article/djdedsh.html


咨詢
建站咨詢
