centos 执行脚本 linux执行sh脚本文件命令

大家好,今天来为大家分享centos 执行脚本的一些知识点,和linux执行sh脚本文件命令的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

centos 7 shell 脚本怎样运行

一、root权限编辑/etc/rc.d/rc.local

Shell代码

su

cd/etc/rc.d/

vi rc.local

二、在这个文件加上你要执行的脚本,全部内容如下:

Shell代码

#!/bin/sh

#

# This script will be executed*after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

touch/var/lock/subsys/local

mount//192.168.0.3/data2-1/mnt/data2-1-o username=un,password=123

mount//192.168.0.3/data2-2/mnt/data2-2-o username=un,password=123

mount//192.168.0.3/data2-3/mnt/data2-3-o username=un,password=123

mount//192.168.0.3/data2-4/mnt/data2-4-o username=un,password=123

mount//192.168.0.3/data2-5/mnt/data2-4-o username=un,password=123

提示:这里的做法很不成熟,希望不要这样,最好自己写个脚本文件在这里来调用,结构更清晰,但是要注意到是把要执行的命令作为一个参数传递给su。

另外复习一个VI编辑命令-拷贝

yy

p

CentOS开机自动启动脚本

Linux服务器的优势在于其稳定性和安全性,但重启时手动启动程序却成为了一大痛点。为解决这一问题,可以通过编写开机自动启动脚本的方式实现程序自动运行。接下来,我们将详细介绍如何在 CentOS服务器上实现此功能。

第一步,找到适合存放启动脚本的位置。通常选择 `/etc/rc.d/rc.local`文件作为添加启动命令的入口。这一步可以通过文本编辑器打开并添加自启动命令。

例如,要启动名为 `start-my-app.sh`的脚本,可以使用以下命令:

echo"/opt/script/start-my-app.sh">>/etc/rc.d/rc.local

若需要以特定用户身份执行脚本,可以使用 `su`命令并指定用户名称。示例如下:

echo"su user1-c/opt/script/start-my-app.sh">>/etc/rc.d/rc.local

添加完成后,确保 `/etc/rc.d/rc.local`文件的执行权限被正确设置。这可以通过执行以下命令实现:

chmod+x/etc/rc.d/rc.local

至此,通过上述步骤,您已成功为 CentOS服务器编写并配置了开机自动启动脚本。在每次服务器重启时,指定的脚本将会自动执行,无需额外手动操作。这样一来,不仅提高了服务器的运行效率,也大大减少了因手动操作带来的潜在错误风险。

shell 脚本中获取执行系统命令的输出结果

获取命令输出内容在shell脚本中至关重要。此过程主要用于根据命令执行结果决定后续操作。通常,开发者会寻找特定的关键字存在于命令输出中,以引导脚本执行不同的动作。

一种常用方法是使用反向单引号保存命令输出至变量,例如:

变量名=`命令`

在实际应用中,应留意一些细节。通过示例可以清晰展示:

在CentOS7中,使用`rpm-qa`命令查询rpm包是否安装。若未安装则进行安装操作。

创建脚本`test.sh`并执行:

$bash test.sh

输出结果:

command(rpm-qa) results are: zlib-1.2.7-13.el7.x86_64 package zlib has already installed.

此脚本功能正常。

对于iscsi-initiator软件包的安装情况,使用`iscsiadm`命令进行检查。与rpm命令不同,iscsiadm安装情况不能仅通过查询获得。

同样方式操作后,得到结果:

$ bash test.sh check command(iscsiadm) available results are: iscsiadm version 6.2.0.873-28 command iscsiadm could be used already.

这表明脚本运行无误,显示iscsiadm已可用。

遇到一个意外情况,`java version"1.8.0_73"`命令已安装,却未匹配到预期结果。执行`java-version`并检查`$?`为0,证实命令成功执行,却未获取到输出。原因可能是命令执行结果被重定向。

尝试将命令调整为`java-version 2>&1`,即可解决此问题并获得预期输出。

阅读剩余
THE END