自動掛載nfs腳本
A. linux NFS掛載,實現異地文件備份
最近做了一個文件的異地備份,採用網路掛載的方式,效果比之前用sync拷貝要方便的多。
也比之前簡單的多,其實也就是幾件事情。
首先是,需要備份的伺服器和備份的伺服器都裝上nfs。
yum install nfs-utils
有的可能還需要單獨安裝一下rpcbind
那就
yum install rpcbind
接著在被掛載伺服器編寫配置文件
vim /etc/exports
/root/work 192.168.0.3(rw,no_root_squash,no_all_squash,async)
/root/work 192.168.0.16(rw,no_root_squash,no_all_squash,async)
如像這樣,授權了本地的/root/work 目錄可以被兩個伺服器訪問,許可權是讀寫(rw)
這一部分就完成了。
接下來是需要備份的伺服器:
安裝玩nfs以後,在/mnt目錄下建一個目錄(通常都是在這個目錄下,別問為什麼?問就是通用習慣。)
cd /mnt
mkdir backserver
這就完成了目錄創建
接著也是最重要的一步
mount -t nfs 192.168.0.18:root/work/backup /mnt/backserver/
這條命令的意思是掛載192.168.0.18:root/work/backup目錄到本機的/mnt/backserver/
-t 是指定掛載類型,nfs,就是網路文件系統的簡稱。
這樣之後,本機的/mnt/backserver/存的文件實際上是存在192.168.0.18:root/work/backup目錄下的。
接下來就是一個見的文件拷貝命令。
rsync -avz /usr/local/nginx /usr/local/tomcat /mnt/backserver/09back
就把文件備份到192.168.0.18:root/work/backup目錄下了。
實現自動備份就更簡單了,直接把剛才的命令寫入shell腳本
保存為backup.sh
然後加入系統定時計劃
crontab -e
30 3 * * * sh /root/work/work/backup.sh
意思是每天三點執行一次腳本,就完成了自動異地備份。
整個過程還是很簡答的,其中涉及一個cs的模式。
需要知道:
1,是客戶端掛載到服務端。
2,服務端需要授予客戶端訪問許可權。
B. linux下怎麼搭建nfs共享並實現開機自動掛載
一、在NIS伺服器上共享NIS用戶主目錄
1.創建用戶及NIS用戶主目錄
建議在NIS伺服器上建立獨立的目錄存放NIS帳號信息,如果保持默認設置則客戶端掛載NIS主目錄到/home目錄時會覆蓋原有用戶主目錄而導致其他異常錯誤;
我們現在建立/nishome存放NIS用戶的主目錄並使用useradd -d將NIS帳號的主目錄指向/nishome,如果己有帳號可以使用usermod -d變更主目錄。
1. [root@master /]# mkdir nishome
2. [root@master /]# mkdir nishome/nisuser1
3. [root@master /]# usermod-d /nishome/nisuser1/ nisuser1
4. [root@master /]# useradd-d /nishome/nisuser2 nisuser2
5. [root@master /]# ls nishome/
6. nisuser1 nisuser2
2.重新生成NIS資料庫並重啟ypserv和yppasswd服務
# /usr/lib/yp/ypinit -m
# service ypserv restart
# service yppasswdd restart
3.共享用戶主目錄
1. # vim /etc/exports
2. /nishome/nisuser1 *(rw)
3. /nishome/nisuser2 *(rw)
4.重啟NFS服務
1. [root@master /]# service nfs restart
2. Shutting down NFS mountd: [ OK ]
3. Shutting down NFS daemon: [ OK ]
4. Shutting down NFS quotas: [ OK ]
5. Shutting down NFS services: [ OK ]
6. Starting NFS services: [ OK ]
7. Starting NFS quotas: [ OK ]
8. Starting NFS daemon: [ OK ]
9. Starting NFS mountd: [ OK ]
10. Stopping RPC idmapd: [ OK ]
11. Starting RPC idmapd: [ OK ]
二、客戶端配置NIS驗證及Autofs
1.檢測主/從NIS伺服器相應服務是否正常開啟
1. [root@client01 ~]# rpcinfo -p master.abcnis
2. program vers proto port
3. 100000 2 tcp 111 portmapper
4. 100000 2 udp 111 portmapper
5. 100024 1 udp 952 status
6. 100024 1 tcp 955 status
7. 100004 2 udp 682 ypserv
8. 100004 1 udp 682 ypserv
9. 100004 2 tcp 685 ypserv
10. 1000041 tcp 685 ypserv
11. 1000091 udp 699 yppasswdd
12. 1000111 udp 781 rquotad
13. 1000112 udp 781 rquotad
14. 1000111 tcp 784 rquotad
15. 1000112 tcp 784 rquotad
16. 1000032 udp 2049 nfs
17. 1000033 udp 2049 nfs
18. 1000034 udp 2049 nfs
19. 1000211 udp 49642 nlockmgr
20. 1000213 udp 49642 nlockmgr
21. 1000214 udp 49642 nlockmgr
22. 1000032 tcp 2049 nfs
23. 1000033 tcp 2049 nfs
24. 1000034 tcp 2049 nfs
25. 1000211 tcp 57392 nlockmgr
26. 1000213 tcp 57392 nlockmgr
27. 1000214 tcp 57392 nlockmgr
28. 1000051 udp 796 mountd
29. 1000051 tcp 799 mountd
30. 1000052 udp 796 mountd
31. 1000052 tcp 799 mountd
32. 1000053 udp 796 mountd
33. 1000053 tcp 799 mountd
2.Authconfig啟用NIS驗證
執行setup(或者authconfig-tui命令)
3.修改Autofs主配置文件
1. vim /etc/auto.master
2. # Sample auto.master file
3. # This is an automounter map and it has thefollowing format
4. # key [ -mount-options-separated-by-comma ]location
5. # For details of the format look at autofs(5).
6. #/misc /etc/auto.misc
7. # NOTE: mounts done from a hosts map will bemounted with the
8. # "nosuid" and"nodev" options unless the "suid" and "dev"
9. # options are explicitlygiven.
10. #
11. /net -hosts
12. /nishome /etc/auto.nishome
13. #nishome是客戶端要掛載的目錄;auto.nishome是Autofs客戶端配置文件;
14. # Include centralmaster map if it can be found using
15. # nsswitch sources.
16. # Note that ifthere are entries for /net or /misc (as
17. # above) in theincluded master map any keys that are th
18. # same will not beseen as the first read key seen takes
19. # precedence.
20. +auto.master
4.創建NIS自動掛載配置文件
1. [root@client01 ~]# touch /etc/auto.nishome
2.
3. [root@client01 ~]# vim /etc/auto.nishome
4. * -fstype=nfs master.abcnis:/nishome/&
5. # Autofs掛載目錄支持通配符 * ;
6. # 網路路徑中的用戶名使用 & 表示;
5.重啟Autofs服務
# service autofs restart
可以看到重啟Autofs服務後客戶端自動創建了/nishome目錄!
三、客戶端測試
注意如果使用su命令在NIS客戶端切換到NIS用戶時,在第一次可能會報無法定位到用戶家目錄的錯誤,沒有關系,退出第二次再使用時就會正常。
1. [root@client01 ~]# su nisuser1
2. [nisuser1@client01 root]$ pwd
3. /root
4. [nisuser1@client01 root]$ cd
5. [nisuser1@client01 nisuser1]$ pwd
6. /nishome/nisuser1
7. [nisuser1@client01 nisuser1]$
C. 如何在Linux下掛載NFS網路共享
1. 主機安裝Cygwin(還有一個http://ftp.iij.ad.jp/pub/cygwin/之類的release包),安裝release包時,確保勾選安裝libbz2_1,sunrpc和nfs-sever,cygrunsrv。
2. 安裝好後,運行/bin/nfs-server-config腳本.腳本運行後,生成export文件。
3. 編輯etc/export文件。可分行輸入需要掛載的目錄,如在根目錄下:
/sharefolder [IP/submask] (rw,no_root_squash)
編輯etc/hosts.allow, 增添 nfsd: ALL 一行
4. 啟動NFS服務。
cygrunsrv -S portmap
cygrunsrv -S nfsd
cygrunsrv -S mountd
運行usr/sbin/showmount.exe 測試
5. 客戶機操作:
mount -t nfs -o nolock 192.168.*.*:/sharefolder /mnt
sharefolder即是NFS伺服器上的共享文件夾,掛載點在客戶機/mnt目錄下
6. 測試
cd /mnt
vi test.txt 隨便輸入內容,然後在主機找到 C:/cygwin/sharefolder,如果發現有test.txt並且內容和剛才輸入的一致,則說明掛在成功。
D. 掛載網路存儲NFS的三種方法
NAS是網路文件系統,可以通過三種方法來掛載。
1、mount手動掛載
可以指定更加詳細的參數,-t nfs指定NFS文件系統,-o rw,sync指定讀寫以及立即同步寫操作(默認為非同步)。
2、/etc/fstab開機自動掛載
系統開機時會主動讀取/etc/fstab這個文件中的內容,根據文件裡面的配置掛載磁碟。
3、autofs 自動掛載
自動掛載器是一種服務autofs,可以根據需要自動掛載NFS共享,並且在不使用NFS時自動卸載這些共享。NFS不像/etc/fstab一樣永久連接,可以釋放網路和系統資源。
Autofs與Mount/Umount的不同之處在於,它是一種看守程序。如果它檢測到用戶正試圖訪問一個尚未掛接的文件系統,它就會自動檢測該文件系統,如果存在,那麼Autofs會自動將其掛接。另一方面,如果它檢測到某個已掛接的文件系統在一段時間內(/etc/autofs.conf中指定,默認300s)沒有被使用,那麼Autofs會自動將其卸載。因此一旦運行了Autofs後,用戶就不再需要手動完成文件系統的掛接和卸載。
編輯主映射文件/etc/auto.master,添加/rhome /etc/auto.rhome映射
編輯vim /etc/auto.rhome,添加掛載信息remoteuser1 -rw materials.example.com:/rhome/remoteuser1
因為時autofs服務,需要systemctl enable --now autofs,設置自啟動並立即生效 。
E. 怎樣保證下次引導linux的時候,目錄會重新掛載nfs伺服器上的目錄
可以在/etc/fstab文件中添加項目,實現NFS文件系統的自動載入,這樣就保證了在系統啟動的時候,自動掛載NFS文件系統。
格式:Host:directory mountpoint nfs options 0 0
示例:
Maple:/tmp /mnt/maple nfs rsize=8192,wsize=8192 0 0
oak:/apps /oak/apps nfs noauto,ro
F. 搭建LINUX伺服器客戶端掛載NFS目錄命令
Linux客戶端可以直接通過mount命令掛載NFS文件,
如下操作:
[root@linux-a ~]# mkdir /mnt/nsf1 //創建掛載點
[root@linux-a ~]# mount -t nfs 192.168.0.231:/nfs/frank /mnt/nfs1
[root@linux-a ~]# mount | grep nfs
[root@linux-a ~]# umount /mnt/nfs1
通過修改/etc/fstab文件可以實現開機自動掛載nfs目錄
[root@linux-b nfs1]# vim /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
192.168.0.231:/nfs/frank /mnt/nfs1 nfs defaults 0 0
以上最後一行是針nfs的自動掛載配置。
G. 在Linux下怎麼實現nfs的自動掛載,在開機的時候就可以
1、首先要開啟portmap和nfs服務。
service portmap start
service nfs start
2、查看服務是否開啟。
netstat -ntpl
3、修改
/etc/exports
vi /etc/exports
#/home/temp *(rw,sync,no_root_squash,all_squash)
#/home/temp *(ro,sync,no_root_squash,all_squash)
(/home/temp
4、exportfs -a
(導出所有共享的目錄)
5、
showmount -e
127.0.0.1 (查被共享的目錄)
Export list for 127.0.0.1:
/mnt/inst *
/home/temp *
H. Linux_171_自動掛載NFS文件系統
配置開機掛載服務,每次開機都能用nfs
把掛載命令寫入到開機自動掛載文件中
/etc/fstab
在客戶端編輯 vim /etc/fstab
192.168.178.120:/nfs_file /yu_666
需要掛載的目錄寫在前邊,後面寫上即將掛載的位置,文件系統的類型
autofs自動掛載服務
/etc/fstab裡面寫了太多的掛載內容,開啟讀取的數據會慢,增加伺服器的壓力。並且掛載的文件不一定是經常使用,可能是臨時使用,沒有必要寫入到文件當中
如果開機就強制掛載很多內容,但是又不經常使用,會給伺服器造成很大的壓力,因此一些具有動態特性的文件系統,可以進行動態掛載(比如光碟,軟盤,U盤,移動硬碟,NFS,SMB等文件系統)
autofs特點
autofs和mount命令的不同點在於
autofs是一個守護進程,它會在後台檢測用戶是否要訪問某一個還未掛載的文件夾系統,autofs會自動檢測該系統是否存在,如果存在則進行掛載。如果用戶過了一段時間沒有使用該文件系統,autofs自動將其卸載,節省人力維護的成本,以及節省伺服器資源
缺點:autofs特點是,當用戶請求的時候才掛載文件系統,如果是高並發的業務場景,大量的用戶並發訪問文件系統,autofs突然進行大量掛載,會給伺服器造成很大的壓力,因此在一些高並發場景下,寧願保持持續掛載,也不用autofs
安裝autofs工具
yum install autofs -y
修改autofs配置文件
/etc/auto.master
