关于/etc/init.d/nfs脚本解读中的疑问解答

本文档通过老男孩老师的讲解,解答了学生对于/etc/init.d/nfs脚本中几个关键命令的疑惑,包括killproc函数用法、文件比较操作符-nt的意义以及shell中的空命令:的作用。

解答学生关于/etc/init.d/nfs脚本解读中的疑问

一份老男孩的早期讲课历史解答,昨天整理NFS课程发现。

解读/etc/init.d/nfs脚本是给学生留的一个课后作业。

1. killproc nfsd -2      #-2不知道如何解释
老男孩老师解答:
看functions中的killproc的函数定义就会明白了,其实就是一个传参。

2. if [ /etc/exports -nt /var/lock/subsys/nfs ] ; then
          echo $"reload"; exit 0                          
-nt不知道如何解释

老男孩老师解答:
给你鱼:
newer than 前者比后者新,同类的还有-ot。
教你渔:
1)man test搜-nt。

FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2

2)搜索引擎搜关键字 "shell语法-nt"


3.[ -f /var/lock/subsys/portmap ] && restart || :  
||后面的冒号 发现有终止进程退出的意思  老师我可以这么理解吗?
老男孩老师解答:
给你鱼:
空命令[冒号]. 这个命令意思是空操作(即什么操作也不做). 它一般被认为是和shell的内建命令true是一样的。冒号":" 命令是Bash自身内建的, and its它的退出状态码是真(即0)。

教你渔:
1)搜索引擎就可以得到答案了,关键字 "shell语法冒号"
2)有一个手册叫做,shell abs里面也有这个解释。

 

前置环境准备1. 相关软件包准备rhel软件包openssl软件包https://openssl-library.org/source/old/index.htmlopensshhttps://www.openssh.com/上传相关软件包2. 配置yum源mkdir /soft mkdir /mnt/filemkdir /etc/yum.repos.d/bakmv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bakcat > /etc/yum.repos.d/base.repo << EDF[base]name=bashbaseurl=file:///mnt/fileenabled=1gpgcheck=0EDFmount -o loop /soft/rhel-server-7.9-x86_64-dvd.iso /mnt/file/yum clean allyum makecache3. 查询当前系统、openssh、openssl版本cat /etc/redhat-releasessh -V4. 安装依赖包yum -y install gcc gcc-c++ glibc make autoconf openssl-devel pcre-devel pam-devel rpm-build5. 禁止selinux##重点,禁止selinux 否则重启后会登录失败##sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsetenforce 06. 解压软件包cd /soft/tar -zxf openssh-9.8p1.tar.gz tar -zxf openssl-1.1.1w.tar.gz 升级opensslmv /usr/bin/openssl /usr/bin/openssl.bakmv /usr/include/openssl /usr/include/openssl.bakmv /usr/lib64/libssl.so /usr/lib64/libssl.so.bakcd /soft/openssl-1.1.1w/./config --prefix=/usr --shared && make && make installopenssl version升级openssh a. 编译安装opensshservice sshd stoprpm -e `rpm -qa|grep openssh` --nodepsrpm -qa |grep opensshrm -rf /etc/ssh#编译安装opensshcd /soft/openssh-9.8p1/./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam --with-tcp-wrappers && make && make install b. 修改ssh配置文件cat >> /etc/ssh/sshd_config << EDFport 22PermitRootLogin yesPermitEmptyPasswords noEDFcp contrib/redhat/sshd.init /etc/init.d/sshdcp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam c. ssh服务chkconfig --add sshdchkconfig sshd onchkconfig sshd --listservice sshd startservice sshd restartssh -V版本回退方法yum remove -y openssh && yum install -y openssh openssh-clients openssh-serverservice sshd restart【注】:建议清理已保存的公私钥配置文件,rm -rf /etc/ssh/ssh_host 改为离线交互式脚本,扫描软件包路径,列出相关软件包,交互式输入openssl版本,交互式输入openssh版本,交互式输入挂载镜像版本,包含回滚方案,分步骤执行,为每个步骤进行编号,每个步骤都需要手动输入(Y/N)交互确认才能执行,每个步骤都需检查验证命令执行结果,前台打印每个步骤执行命令及命令执行的验证结果,日志文件记录脚本执行命令及命令执行详细情况
最新发布
08-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值