zoukankan      html  css  js  c++  java
  • Linux基础(七)

    一、nfs服务

    nfs(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。常用于Linux系统之间的文件共享。

    nfs在文件传送过程中依赖rpc(远程过程调用)协议,可以这么理解,nfs是文件系统,而rpc负责信息传输。

    配置服务需要五步:

    1.关闭防火墙

    systemctl stop firewalld

    关闭selinux,setenforce 0

    2.配置IP

    检查自己的IP地址能否正常使用

    3.安装软件包

    yum install -y rpcbind nfs-utils

    4.修改配置文件

    配置文件在/etc/exports

    文件格式为:

      <输出目录> [客户端1 选项(访问权限,用户权限,其他人权限)] [客户端2 选项(访问权限,用户映射,其他)]

    5.测试

    1)新建一块硬盘,格式化并挂载到/share下,

    2)写入配置文件

    /share 192.168.16.0/24(rw,sync)

    客户端常用的指定方式

    • 指定ip地址的主机:192.168.0.200
    • 指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
    • 指定域名的主机:david.bsmart.cn
    • 指定域中的所有主机:*.bsmart.cn
    • 所有主机:*

    用户映射选项

    • all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
    • no_all_squash:与all_squash取反(默认设置);
    • root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
    • no_root_squash:与rootsquash取反;
    • anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
    • anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

    其它选项

    • secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
    • insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
    • sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
    • async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
    • wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
    • no_wdelay:若有写操作则立即执行,应与sync配合使用;
    • subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
    • no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

    3)命令exportfs可以显示共享给哪些用户

    4)开启另一台设备,设置网络,安装nfs服务(不需要改配置,也不用开启nfs)

    5)挂载 mount 192.168.16.25:/share /opt

       showmount -e 查看nfs服务器是否有共享目录

    二、crond 计划任务

    提前设定好计划任务后,到了预定时间就会自动运行命令,这就叫计划任务。crond是很重要的服务,即使Centos是最小化安装,也会默认装上这个服务,而且默认开机启动

    计划任务分为系统级别和用户级别,系统的计划文件存放在/etc/crontab路径下,用户的计划文件存放在/var/spool/cron路径下,两种级别都可以满足我们定制计划的需求。root用户可以直接修改配置文件,也可以通过crontab -e命令来编写计划任务,而普通用户只能通过后者。我们来看一下全局配置文件

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    
    # For details see man 4 crontabs
    
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name  command to be executed

    *代表“每”,从左到右依次是分钟,小时,日,月,周,用户名,要执行的命令

    可以直接在这个配置文件中修改,写入计划任务,也可以用crontab -e -u root 来写计划任务,但是要注意用户级的修改不能写用户名,如* * * * * date >> /tmp/time.log

    用crontab -l 查看计划任务是什么

    用tail -f /var/log/cron查看计划任务的执行

    示例:

    30 12 * * * /usr/bin/tar cvf /etc_bak/$(date'+\%Y-\%m-\%d_\%T').tar.gz /etc

    每天12:30备份/etc目录,保存到/etc_bak中,并以时间命名

    注意:1.命令必须使用绝对路径,否则可能出错

       2.注意系统时间是否正确,可以用hwclock -w 同步硬件时间和系统时间

       3.保证我们写的脚本有执行权限

       4.crond在执行命令时,有些通配符无法识别,所以最好都加上

  • 相关阅读:
    POJ1270 Following Orders[拓扑排序所有方案 Kahn]
    拓扑排序 POJ2367Genealogical tree[topo-sort]
    如何使用MySQL Workbench创建数据库存储过程
    sql server数据库中 smallint, int ,bigint ,tinyint的区别与长度
    now() 的用法
    存储过程制造数据
    JMeter—系统性能分析思路
    JMeter—监听器
    JMeter—断言
    Jmeter后置处理器之JSON Extractor
  • 原文地址:https://www.cnblogs.com/zhang-can/p/6938450.html
Copyright © 2011-2022 走看看