本專案是乙個外包出去的web專案。硬體涉及同一區域網內的若干工控機及乙個伺服器。工控機內執行python工作指令碼,伺服器部署專案前後端等。現有需求:前端實時展示各個伺服器的python指令碼日誌檔案。
外包使用的日誌方式是重定向python指令碼輸出到檔案,再將文字寫入mysql中。該方法會導sql檔案過大,讀取太慢且不易維護。
本人的想法是對日誌系統進行重構,盡量使用原生的檔案系統,搭建乙個輕量化,易維護的服務。
於是使用nfs。nfs全名為network file system。本服務可以用於linux系統間通過網路共享乙個檔案系統。設計思路是在伺服器上搭建乙個nfs-server,通過區域網掛載出伺服器的乙個目錄到工控板上某目錄,使其對工控機可見,工控機實時寫入python日誌文字檔案。
伺服器端(192.168.8.71)安裝nfs-server:
apt install nfs-kernel-server
編輯配置檔案
vim /etc/exports
新增一行:
/tmp/logs *(rw,sync,no_subtree_check,no_root_squash)
各引數說明如下:
ro 該主機對該共享目錄有唯讀許可權
rw 該主機對該共享目錄有讀寫許可權
root_squash 客戶機用root使用者訪問該共享資料夾時,將root使用者對映成匿名使用者
no_root_squash 客戶機用root訪問該共享資料夾時,不對映root使用者
all_squash 客戶機上的任何使用者訪問該共享目錄時都對映成匿名使用者
sync 資料同步寫入到記憶體與硬碟中
async 資料會先暫存於記憶體中,而非直接寫入硬碟
insecure 允許從這台機器過來的非授權訪問
subtree_check 如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的許可權(預設)
no_subtree_check 和上面相對,不檢查父目錄許可權
wdelay 如果多個使用者要寫入nfs目錄,則歸組寫入(預設)
no_wdelay 如果多個使用者要寫入nfs目錄,則立即寫入,當使用async時,無需此設定。
hide 在nfs共享目錄中不共享其子目錄
no_hide 共享nfs目錄的子目錄
secure nfs通過1024以下的安全tcp/ip埠傳送
insecure nfs通過1024以上的埠傳送
配置修改完成後,重啟nfs服務
service nfs-kernel-server restart
客戶端(192.168.8.72)安裝nfs-client:
apt install nfs-common
建立欲掛載到服務端192.168.8.71:/tmp/logs的目錄/tmp/logs
使用指令掛載:mount -t nfs 192.168.8.71:/tmp/logs /tmp/logs
掛載後可以使用df -h指令檢視已掛載的檔案系統
root@pc-desktop:/tmp# df -h
檔案系統 容量 已用 可用 已用% 掛載點
udev 3.9g 0 3.9g 0% /dev
tmpfs 787m 9.1m 778m 2% /run
/dev/sda5 36g 4.3g 30g 13% /
tmpfs 3.9g 184k 3.9g 1% /dev/shm
tmpfs 5.0m 4.0k 5.0m 1% /run/lock
tmpfs 3.9g 0 3.9g 0% /sys/fs/cgroup
/dev/sda6 93m 1.6m 85m 2% /d1
/dev/sda10 969m 1.3m 902m 1% /d5
/dev/sda8 380m 2.3m 354m 1% /d3
/dev/sda7 190m 1.6m 175m 1% /d2
/dev/sda9 772m 808k 715m 1% /d4
/dev/sda2 1.9g 6.0m 1.8g 1% /home
/dev/sda1 464m 74m 362m 17% /boot
tmpfs 787m 24k 787m 1% /run/user/108
tmpfs 787m 0 787m 0% /run/user/0
192.168.8.71:/tmp/logs 39g 14g 23g 38% /tmp/logs
在客戶機上測試檔案系統功能:echo '1' >>/tmp/logs/client.txt
主機上出現了client.txt檔案。
在主機上測試:echo '1'>>/tmp/logs/server.txt
客戶機上出現了server.txt檔案
搭建linux NFS和SSH伺服器
嵌入式除錯常常需要做nfs掛載除錯,和ssh遠端伺服器除錯。記錄下nfs和ssh遠端伺服器的搭建過程 nfs伺服器搭建 1.安裝nfs server sudo apt get install nfs kernel server 2.配置nfs目錄 etc exports sudo vi etc ex...
Linux NFS共享服務
nfs network file system 網路檔案系統,是在類unix系統間實現磁碟檔案共享的一種方法。unix 系統之間共享檔案的一種協議 nfs 的客戶端主要為 linux 支援多節點同時掛載以及併發寫入。伺服器端 sed ri selinux cselinux disabled etc ...
Linux nfs服務實際演練
做 linux實驗,與機房裡single同學試驗nfs 首先,我在 root 新建資料夾nfs,在裡面新建檔案test.txt,文字內容為hello single 然後更改 etc exports,如下新增一行 root nfs 192.168.1.rw,no root squash,sync 第乙...