首页 > 代码库 > linux操作系统基础篇(七)
linux操作系统基础篇(七)
NFS服务(基于CentOS 7.0)
NFS(Network File System),网络文件系统,是linux与linux之间进行文件共享的服务,在NFS应用,本地NFS的客户端可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
安装服务
[root@nfs-server ~]# yum install nfs-utils rpcbind -
服务配置
NFS服务安装后,并没有任何共享配置,需要自己新建一个目录进行共享
[root@nfs-server ~]# echo "/share *(sync,rw)" >> /etc/exports #/share是共享的目录,*表示所有可访问该共享的ip,可以写一个ip地址或者网络,sync表示同步类型,rw表示访问权限 [root@nfs-server ~]# 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的防火墙访问
[root@nfs-server ~]# firewall-cmd --permanent --add-service=nfs success [root@nfs-server ~]# firewall-cmd --reload success [root@nfs-server ~]# firewall-cmd --permanent --add-service=rpc-bind success [root@nfs-server ~]# firewall-cmd --reload success [root@nfs-server ~]# systemctl start nfs-server [root@nfs-server ~]# systemctl enable nfs-server ln -s ‘/usr/lib/systemd/system/nfs-server.service‘ ‘/etc/systemd/system/nfs.target.wants/nfs-server.service‘
服务验证
查询服务端的共享点
[root@nfs-client ~]# showmount -e 192.168.1.10 #前提是服务器端防火墙放行mountd服务 Export list for 192.168.1.10: /share *
客户端挂载共享点
[root@nfs-client ~]# mount 192.168.1.10:/share /mnt #挂载nfs共享的目录 [root@nfs-client ~]# 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
[root@nfs-client ~]# touch /mnt/abc.txt #权限限制,匿名访问是用nobody用户,因为该目录本身对于其他用户的权限是没有写入权限 touch: cannot touch ?.mnt/abc.txt?. Permission denied
修改服务端共享点目录的权限
[root@nfs-server ~]# chmod 777 /share/
再次验证写入即可
[root@nfs-client ~]# touch /mnt/abc.txt [root@nfs-client ~]# 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 执行的命令,命令关键字必须是绝对路径
计划任务示例:
[root@crond-test ~]# 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目录 [root@crond-test ~]# crontab -e -u jerry 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt #jerry用户每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件
linux操作系统基础篇(七)