【linux下使用smtp+shell脚本实现服务器存活状态监控】教程文章相关的互联网学习教程文章

linux – 获取shell脚本中的函数名列表【代码】

参见英文答案 > How do I list the functions defined in my shell? 6个我有一个Bourne Shell脚本,其中包含多个函数,并允许以下列方式调用:my.sh <func_name> <param1> <param2>在里面,将使用param1和param2调用func_name(). 我想创建一个帮助函数,只列出所有可用的函数,即使没有参数. 问题:如何从脚本内部获取脚本中所有函数名称的列表? 我想避免解析它并寻找功能模式.太容易出错了. 更新:...

Linux运行shell脚本提示No such file or directory错误的解决办法【图】

Linux执行.sh文件,提示No such file or directory的问题:原因:在windows中写好shell脚本测试正常,但是上传到 Linux 上以脚本方式运行命令时提示No such file or directory错误,那么一般是文件格式是dos格式的缘故,改成unix 格式即可。一般有如下几种修改办法。 1)在Windows下转换: 利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS-...

linux – 在shell脚本中使用passwd命令【代码】

我正在编写一个shell脚本来自动添加新用户并更新他们的密码.我不知道如何让passwd从shell脚本中读取而不是以交互方式提示我输入新密码.我的代码如下.adduser $1 passwd $1 $2 $2 解决方法:来自“man 1 passwd”:--stdinThis option is used to indicate that passwd should read the newpassword from standard input, which can be a pipe.所以在你的情况下adduser "$1" echo "$2" | passwd "$1" --stdin[更新]评论中提出了一些问...

linux – $@在shell脚本中意味着什么?【代码】

在shell脚本中,一个美元符号后跟一个符号(@)是什么意思? 例如:umbrella_corp_options $@解决方法:$@是传递给脚本的所有参数. 例如,如果你调用./someScript.sh foo bar,那么$@将等于foo bar. 如果你这样做:./someScript.sh foo bar然后在someScript.sh引用中:umbrella_corp_options "$@"这将传递给umbrella_corp_options,每个参数都用双引号括起来,允许从调用者那里获取带空格的参数并传递它们.

Linux学习05——用户身份与文件权限及编写shell脚本【图】

20190915: 今天的课程学习了用户身份与文件权限以及编写shell脚本的课程 1、编写shell脚本 可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”,它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环、分支等高级编程语言才有的控制结构特性。要想正确使用Shell中的这些功能特性,准确下达命令尤为重要。Shell脚本命令的工作方式有两种:交互式和批处理。 交互式(Interactive):用户每...

linux下使用smtp+shell脚本实现服务器存活状态监控【代码】

简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是在Internet传输email的事实标准, SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者,然后消息文本会 被传输。SMTP使用TCP端口25。 一、配置环境 [root@ser ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) #查看系统环境 [root@ser ~]# systemctl stop firewalld #停止firewall防火墙服务 [root@ser ~]# systemctl...

Linux shell 脚本 实现查询出进程的名字,cup内存占用率,启动时间在线状态等格式化输出

目的是查询出进程的名字,cup内存占用率,启动时间在线状态等格式化输出 脚本实现的结果:[root@zabbix ~]# sh /app/shell/app_status.shProcessName---------GroupName-------Status-----PID----CPU----MEMORY----StarTime---nginx WEB STOPED NULL NULL NULL NULLhttpd WEB STOPED NULL NULL NULL NULLmysql DB RUNN...

linux – 如何在shell脚本中的变量中存储命令?【代码】

我想存储一个命令,以便稍后在变量中使用(不是命令的输出,而是命令本身) 我有一个简单的脚本如下:command="ls"; echo "Command: $command"; #Output is: Command: lsb=`$command`; echo $b; #Output is: public_html REV test... (command worked successfully)但是,当我尝试更复杂的东西时,它会失败.例如,如果我做command="ls | grep -c '^'";输出是:Command: ls | grep -c '^' ls: cannot access |: No such file or directory ...

如何在Linux shell脚本中提示是/否/取消输入?【代码】

我想在shell脚本中暂停输入,并提示用户进行选择.标准的“是,否或取消”类型问题.如何在典型的bash提示符中完成此操作?解决方法:在shell提示符下获取用户输入的最简单且最广泛可用的方法是read命令.说明其用法的最佳方式是一个简单的演示:while true; doread -p "Do you wish to install this program?" yncase $yn in[Yy]* ) make install; break;;[Nn]* ) exit;;* ) echo "Please answer yes or no.";;esac doneSteven Huwig指出...

linux – 为什么“cd”不能在shell脚本中工作?【代码】

我正在尝试编写一个小脚本来将当前目录更改为我的项目目录:#!/bin/bash cd /home/tree/projects/java我将此文件保存为proj,使用chmod添加了执行权限,并将其复制到/usr/bin.我打电话给:proj,它什么都不做.我究竟做错了什么?解决方法:Shell脚本在子shell中运行,每个子shell都有自己的当前目录概念. cd成功了,但是一旦子shell退出,你就会回到交互式shell中,并且没有任何改变. 解决此问题的一种方法是使用别名:alias proj="cd /hom...

Linux下使用shell脚本自动备份和移动数据到大容量存储【代码】【图】

自动备份数据库,并将备份前一天的数据移动拷贝到存储上。 需求来源是因为linux系统层的磁盘存储容量过小,数据库自动备份之后日积月累数据越来越多,而且还不想删除旧数据。那解决方法就是在linux系统主机上挂载存储到指定目录,然后利用脚本实现备份数据库文件自动拷贝移动到存储。具体实现方法如下: 1.编写备份数据库脚本 mysqldump -uroot -p(mysql密码) zabbix > /root/mysql.bak/zabbix`date +%Y%m%d`.sql2.编写备份数...

Linux系统命令及shell脚本实践指南第一课

Linux系统命令及shell脚本实践指南第一课 一、 嵌入式操作系统? 标准:可移植:X86,ARM,DSP,powerPC(可以运行在不同CPU体系结构上的机器) 错误:嵌入式操作系统:开源 嵌入式操作系统 Vxworks:美国宇航局:航空、军事、工业(实时性:在规定时间完成规定的动作)缺点:不开源、付费 winCE:微软出品、不开源(出租车、麦德龙、POS机):金融 ucosii:小型实时操作系统(5000+);8,16,51+ucosii stm32+ucosii Linux:开源、...

linux – 将一个shell脚本变量传递给另一个shell脚本【代码】

我试图从另一个脚本访问一个脚本变量,例如, script1.sh:export a=10 export b=20 echo "testing" exitscript2.sh:. script1.sh echo $a这里涉及的问题是它能够从script2中的script1访问变量’a’,但是它执行了在script1.sh中编写的所有命令,这很烦人.我只想访问script1中的导出变量,并且想要在script2中调用它时在script1中运行命令. 请帮忙! 谢谢,KARTHIK解决方法:分配变量是一个命令.除非你准备用bash编写一个bash解析器,否则...

linux – 这在shell脚本中是什么意思SCRIPTNAME =“${0 ## * /}”?【代码】

此代码来自apache2服务启动脚本. 这是什么意思?SCRIPTNAME="${0##*/}"解决方法:它找到正在运行的脚本的名称,删除其目录.例如,如果脚本是/etc/init.d/httpd,那么这将设置SCRIPTNAME = httpd. $0或${0}是正在执行的脚本的名称. ##运算符用于删除与模式* /匹配的任何前导字符串. *是通配符,因此* /表示“任何字符串后跟正斜杠”. 这样做的效果是从$0中删除任何前导目录名称,只留下脚本的名称. 来自man bash:${parameter#word} ${par...

linux – 使用shell脚本打开包含多个选项卡的终端【代码】

我是linux shell脚本的新手.我想写一个shell脚本,它将打开带有多个标签的终端.在每个选项卡中,它应该运行一个rtsp客户端应用程序. 我写了这段代码,tab="--tab-with-profile=Default -e " cmd="java RunRTSPClient" for i in 1 2 3 4 5do # foo="$foo $tab $cmd" done gnome-terminal $foo exit 0它执行正常但它会打开终端并立即关闭.(我没有收到错误)如果我用gnome-terminal –tab -e $cmd替换了行foo = …那么它的工作正...