1. 程式人生 > >linux操作系統基礎篇(七)

linux操作系統基礎篇(七)

多個 success centos mountd rpcbind ces 說明 目錄 發送

NFS服務(基於CentOS 7.0)

NFS(Network File System),網絡文件系統,是linux與linux之間進行文件共享的服務,在NFS應用,本地NFS的客戶端可以透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件一樣。

安裝服務

[[email protected] ~]# yum install nfs-utils rpcbind - 

服務配置

NFS服務安裝後,並沒有任何共享配置,需要自己新建一個目錄進行共享

[[email protected] ~]# echo "/share *(sync,rw)"  >> /etc/exports  #/share是共享的目錄,*表示所有可訪問該共享的ip,可以寫一個ip地址或者網絡,sync表示同步類型,rw表示訪問權限
[[email protected]
/* */ ~]# mkdir /share/    #創建目錄
共享參數說明(綠色常用):

 ro 只讀訪問

  rw 讀寫訪問

  sync 所有數據在請求時寫入共享

  async 在寫入數據前可以相應請求

  hide 在NFS共享目錄中不共享其子目錄

  no_hide 共享NFS目錄的子目錄

  secure NFS通過1024以下的安全TCP/IP端口發送

  insecure NFS通過1024以上的端口發送

  wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認)

  no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。

  subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)

  no_subtree_check 和上面相對,不檢查父目錄權限

  all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄

  no_all_squash 保留共享文件的UID和GID(默認)

  root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)

  no_root_squas root用戶具有根目錄的完全管理訪問權限

  anonuid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的UID

  anongid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的GID

啟動服務

nfs服務共享是通過rpc協議共享,所以需要同時開放nfs和rpc的防火墻訪問

[[email protected] ~]# firewall-cmd --permanent --add-service=nfs 
success
[[email protected] ~]# firewall-cmd --reload 
success
[[email protected] ~]# firewall-cmd --permanent --add-service=rpc-bind
success
[[email protected] ~]# firewall-cmd --reload 
success
[[email protected] ~]# systemctl start nfs-server
[[email protected] ~]# systemctl enable nfs-server
ln -s ‘/usr/lib/systemd/system/nfs-server.service‘ ‘/etc/systemd/system/nfs.target.wants/nfs-server.service‘

服務驗證

查詢服務端的共享點

[[email protected] ~]# showmount -e 192.168.1.10  #前提是服務器端防火墻放行mountd服務
Export list for 192.168.1.10:
/share *
客戶端掛載共享點

[[email protected] ~]# mount 192.168.1.10:/share /mnt      #掛載nfs共享的目錄
[[email protected] ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        48G  4.7G   44G  10% /
devtmpfs                devtmpfs  103M     0  103M   0% /dev
tmpfs                   tmpfs     112M     0  112M   0% /dev/shm
tmpfs                   tmpfs     112M  4.8M  108M   5% /run
tmpfs                   tmpfs     112M     0  112M   0% /sys/fs/cgroup
/dev/sda1               xfs       297M  109M  189M  37% /boot
192.168.1.10:/share     nfs4       48G  4.8G   44G  10% /mnt
寫入數據驗證
[[email protected] ~]# touch /mnt/abc.txt      #權限限制,匿名訪問是用nobody用戶,因為該目錄本身對於其他用戶的權限是沒有寫入權限
touch: cannot touch ?.mnt/abc.txt?. Permission denied
修改服務端共享點目錄的權限
[[email protected] ~]# chmod  777 /share/
再次驗證寫入即可
[[email protected] ~]# touch /mnt/abc.txt
[[email protected] ~]# ls /mnt/abc.txt 
/mnt/abc.txt

crontd服務

在linux中用於設置周期性被執行的指令,在特定的時間點執行一項作業,並且在以後相同的時間點重復執行

crond由多個配置文件和系統文件控制,每個用戶對應一個配置文件。

crontab管理工具

命令格式:

  crontab [選項] [參數]

選項說明:

  -l  列出當前用戶的計劃任務

  -r  刪除當前用戶所有的計劃任務

  -e  編輯當前用戶的計劃任務

  -u  指定用戶

配置周期作業字段組成:

  示例:* * * * * /usr/bin/echo "1111111" >> /root/aaa.txt

  說明:每分鐘向aaa.txt追加一行1111111

    第一個星號表示分鐘:0-59,*表所有,下同

    第二個星號表示小時:0-23

    第三個星號表示日期:1-31

    第四個星號表示月份:1-12

    第五個星號表示周幾:0-7(0和7表示周日)

    註:*表示始終,即每分鐘、每小時、每天、每月、每周幾,可以用數字表示

    註:x-y 表示範圍

x,y 表示一個類,列表

例:分鐘位  5,10-13,17 表示每小時5、10、11、12、13、17分鐘執行

*/x x表示時間間隔

    /usr/bin/echo "1111111" >> /root/aaa.txt  執行的命令,命令關鍵字必須是絕對路徑

計劃任務示例:

[[email protected] ~]# crontab -e
7 * * * /sbin/service sshd start #每天早上7:50自動開啟sshd服務,22點50時關閉
22 * * * /sbin/service sshd stop 
* */5 * * /bin/rm -rf /var/ftp/pub/* #每隔5天清空一次FTP服務器公共目錄/var/ftp/pub
7 * * 6 /sbin/service httpd restart #每周六的7:30時,重新啟動httpd服務
17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd #每周一、三、五的17:30時,打包備份/etc/httpd目錄
[[email protected] ~]# crontab -e -u jerry 
23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt #jerry用戶每周日晚上23:55時將“/etc/passwd”文件的內容復制到宿主目錄中,保存為pwd.txt文件

  

linux操作系統基礎篇(七)