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

linux – 即使在退出命令后,Shell脚本仍继续运行【代码】

我的shell脚本如下所示:#!/bin/bash# Make sure only root can run our script [ $EUID -ne 0 ] && (echo "This script must be run as root" 1>&2) || (exit 1)# other script continues here...当我使用非root用户运行上面的脚本时,它会输出消息“This script …”但它不会从那里退出,它继续使用剩余的脚本.我究竟做错了什么? 注意:我不想使用if条件.解决方法:你正在运行echo并退出子shell.退出调用只会留下子shell,这有点无意...

在作为sudo运行的linux shell脚本中使用重定向【代码】

我有一个unix shell脚本,它使用stdout和stderr重定向到日志文件.例如test.sh:ls -l &>> test.log我的问题是,当我用sudo运行脚本时:sudo ./test.sh&被解释为“在后台运行”. 有什么建议?解决方法:我想,你的脚本test.sh在第一行没有像这样的shebang:#!/bin/bash如果没有此行,则会有多个环境设置影响脚本的执行方式.在你的情况下,这意味着由于root用户的设置,将使用另一个shell,如ash,ksh,dash或其他任何shell来执行脚本.

linux – 比较shell脚本中的字符串时出现“意外的运算符”错误【代码】

参见英文答案 > Unexpected operator error 4个我正在尝试创建一个运行命令的shell脚本,并在运行其他脚本的输出非空时播放音乐.到目前为止,我有这个.但是,我不断在最后一行收到“意外运算符”错误.代码有什么问题? 另外需要注意的是,我已经验证了myscript运行正常,并且从命令行运行vlc也是如此.#!/bin/shTOF=`myscript | cat` EMPTYSTR=""if [ "$TOF" == "$EMPTYSTR" ]; thenecho "vlc somem...

linux – 将时间戳添加到shell脚本的cat输出中【代码】

我有一个小脚本,它将ttyUSB的输出转换为我希望在每行前加一个时间戳的文件.从命令行,这可以完成我想要的一切:$cat /dev/ttyUSB0 /home/pi/daily_logs/ttyUSSB0 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }我的问题是,当我将它添加到脚本时一切正常但是没有添加awk时间戳.我的脚本行看起来像这样:cat < /dev/ttyUSB0 > /home/pi/daily_logs/ttyUSB0 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; } &任何帮助实现...

linux – shell脚本,仅查找最近n分钟内创建的所有文件夹的列表【代码】

我想列出最近n分钟创建的文件夹中的所有文件夹.它不应包含文件夹中的子文件夹.我尝试了以下没有奏效的ls -d * | find -cmin -60请提出一些建议 提前致谢解决方法:例如.:find . -maxdepth 1 -type d -cmin -60 -print | egrep -v '^(\.|\.\.)$' | sed 's/..//'将找到所有目录,不要转到子目录,并排除.和.. 编辑:现在将打印而不是./dir只有dir 或者,find . -maxdepth 1 -type d -cmin -60 -printf "%f\n" | egrep -v '^(\.|\.\.)...

linux – 如何在shell脚本中使用grep来查找文件内的单词【代码】

如何使用grep在用户输入的文件中找到一个确切的单词作为字符串? 例如,我需要选择我想要找到的单词和我想要找到的文件.我被告知我非常接近,但有些东西不能正常工作.我在Linux下使用bash shell. 这是我到目前为止所做的:#!/bin/bash echo "Find the file you want to search the word in?" read filename echo "Enter the word you want to find." read word1 grep $word1 $filename解决方法:How can I use grep to find an exac...

如何在执行shell脚本时关闭echo Linux【代码】

参见英文答案 > How to silence output in a Bash script? 7个这是我正在做的一件简单的事情echo "please enter a command"read x$xcheckexitstatus(){...}checkexit status是在其他地方创建的ifloop,只是为了检查退出状态 我想知道的是有什么办法,当我运行$x,它不会显示在屏幕上我想知道是否可以将输出重定向到文件解决方法:您可以使用Bash重定向: >命令1> /…/path_to_file =>将stdout重定向...

linux – 如何解析shell脚本中的命令输出【代码】

任何人都可以建议我如何解析下面的命令输出并将特定值存储在变量中. sestatus 这是该命令的输出SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted在这里,我想存储当前模式的“强制执行”:在变量中. 任何人都可以...

linux – 所有命令shell脚本都有一个通用名称吗?

我经常发现自己需要描述一个可以在所有主要shell解释器上执行的简单Linux命令(ksh,bash,sh),但我不知道如何表明这一点.一些例子是:ls,cd或cp. 为了具体,我想说的是没有特别提到任何shell.在SQL上下文中,这很简单:“SQL”是指所有类型(Oracle,MSSQL等)之间的共享标准.所以似乎相信这个术语是“shell”,但即使它要求你使用更具体的shell标签,暗示没有可行的共享功能. 是否有Unix / Linux命令shell之间所有共享语法的名称,或者它根本...

如何使用bash shell脚本读取Linux中的块特殊和字符特殊设备?【代码】

我试图从/ dev / random和/ dev / urandom中读取并想知道什么是最好的方法来读取它们和块/字符特殊设备一般使用bash shell脚本?解决方法:使用dd从设备获取数据块.例如.从/ dev / urandom获取8个字节:dd if=/dev/urandom count=1 bs=8 | ...然后,您可以使用od将字节转换为人类可读的形式:$dd if=/dev/urandom count=1 bs=8 2>/dev/null | od -t x1 -A n b4 bc 2f 59 dd 55 1b 4a顺便说一句,如果你只需要bash中的随机数,$RANDOM可...

linux – 执行应用程序后运行shell脚本命令【代码】

我编写了一个shell脚本来执行一系列命令. shell脚本中的一个命令是启动应用程序.但是,我不知道在启动应用程序后如何继续运行shell脚本. 例如:... cp somedir/somefile . ./application rm -rf somefile一旦我使用“./application”启动应用程序,我就无法继续运行“rm -rf somefile”命令,但我确实需要从目录中删除该文件. 任何人都有任何想法如何在启动应用程序后竞争运行“rm -rf”命令? 谢谢解决方法:正如其他人所指出的那样,你...

linux – 尝试并行启动任务的Shell脚本?【代码】

我需要做的基本任务是多次调用python脚本,每次都使用不同的参数.例如:script.py -t command1 script.py -t command2 script.py -t command3等等.现在的问题是script.py需要很长时间才能运行,所以将上面的内容放在一个shell脚本中并一个接一个地运行它们是浪费时间. 相反,我希望能够做的是打开多个终端,并在每个终端中运行script.py -t command_i对于ith命令参数.有没有办法做到这一点?如果没有,是否有任何其他有用的并行选项,我正...

linux – 获取shell脚本的pid并将其保存到lockfile中【代码】

我使用rsnapshot进行备份,这会创建一个带有进程pid的锁文件.现在我想从rsnapshots备份进行备份,所以我正在寻找一种方法来为第二个/外部备份创建这个锁文件. shell脚本应该是这样的: >检查是否存在锁定文件,如果是,请等待再试一次(我正在使用while循环执行此操作)>获取此shell脚本的pid并将其另存为rsnapshot lockfile>启动第二个/外部备份>删除锁文件 如何获取PID并将其另存为rsnapshot lockfile?解决方法:PID存储在$$中 喜欢ech...

linux – 如何在shell脚本中无密码切换到另一个用户【代码】

我想从hadoopmaster到hduser.当我在终端上这样做时,我做:su - hduser然后我要求输入密码,然后我输入密码,然后进入hduser.如何在shell脚本中执行相同操作而不必担心密码?我尝试了sudoers文件方法,我把它放在:root ALL=(ALL:ALL) ALL hduser ALL=(ALL:ALL) ALL hadoopmaster ALL=(ALL:ALL) NOPASSWD: /bin/su hduser (here I tried different combinations of the line with and without the '-' and also with and without /bi...

linux – 如何从hubot执行shell脚本【代码】

我启动并运行了第一个hubot,并根据现有示例编写了我的前几个脚本.我希望与hubot集成的现有工作流基本上基于几个shell脚本,每个脚本执行一个任务.任务可能相对复杂(git / svn checkout,使用gcc编译代码并运行它).如何用hubot执行bash脚本?我见过this question,但它只涉及简单的命令,如ls.我试过了build = spawn 'source', ['test.sh'] build.stdout.on 'data', (data) -> msg.send data.toString() build.stderr.on 'data', (data)...