Articles of bash

似乎无法得到expr substr工作

谁能告诉我我做错了什么? [ /jlr/sub/libexec/vmr-staging ] $ expr substr "onetwothree" 1 4 expr: syntax error 我从https://stackoverflow.com/a/220464/1150847获得了语法

审查一个crontab脚本来添加时间戳到每分钟运行; 有什么build议么?

我已经有一个crontab作业设置好了, * * * * * /home/username/public_html/domain.tld/production/scripts/cron_runner.sh 我的目标是添加一些时间戳从cron输出,所以我可以更轻松地findwebapp内部cron系统中的某些故障点。 有时我会收到消息,有时候我不会看到,我只想执行一个完整的检查,我已经在这里正确地创build了这个脚本: #!/usr/bin/env bash # # Script Name: cron_runner.sh # echo "Cron Execution @ `date`: " >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1 cd /home/username/public_html/domain.tld/production && /usr/local/bin/php /home/username/public_html/domain.tld/production/cron.php >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1 echo "==== END CRON EXEC ====" >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1 有什么build议么?

通过elinkspipe道尾部输出

考虑下面的命令: elinks -dump file.html 它将打印文件,格式为纯文本(没有HTML标签)。 file.html不断更新(一个新的数据被追加),我想通过“tail -f像这样运行它: tail -f file.html | elinks -dump 然而它不工作。 有任何想法吗?

确定哪个进程拥有一个群集文件

我有一个Bash脚本,并行运行在多个进程中。 相关部分如下所示: flock /var/lock/my_lock my_command 鉴于/var/lock/my_lock存在,是否有办法确定哪个进程拥有它,从而哪一个正在执行my_command ?

Linux bash:由非root用户使用PHP以非root用户身份运行脚本

我有一个由“tom”拥有的PHP脚本(使用PHP-FPM运行)。 “tom”想运行脚本/srv/helloworld.sh作为另一个用户“jerry”。 “tom”有权在服务器上运行脚本(所以他可以使用ex。system())。 多么短,“汤姆”想知道如何做到这一点。 “汤姆”拿了一些文章: sudo su -c /srv/helloworld.sh jerry 但主要的问题是,脚本要求input密码,而且您知道(如果我没有弄错),则无法在Web界面中input密码。 我很好奇这个话题,如果你能帮助我,我会很高兴。 提前致谢!

退出与SSH相同的名称屏幕

我有一个服务器,几个屏幕开始。 这是什么显示当我使用screen -ls : There are screens on: 12811.screen (Detached) 2061.screen (Detached) 7055.screen (Detached) 11746.screen (Detached) 11740.realscreen (Detached) 11740.screen (Detached) 6 Sockets in /var/run/screen/S-root. 我一直试图在同一时间退出所有屏幕同名。 我知道我可以一次用killall屏幕退出所有的屏幕,但是这会杀死每一个屏幕,我只想退出同名的屏幕。 有一个bash文件,我将能够使用,这将遍历所有的屏幕,并退出它们? 还是有另一种方法,我可以退出同名的所有屏幕?

为什么Cat会在命令replace时引用单词

所有, 我试图使用命令replace来保持文件中的命令行参数。 我最初的想法是简单地将命令行参数放在一个文件中的单行,然后调用我的命令作为command $( cat [arguments-file] ) other arguments然而,这似乎并没有正确的工作。 我开始做一些debugging,通过set -x打开bashdebugging,命令的结果是 command $( /tmp/arg-file ) File.xml + command -m '"Manhattan' Item 'MockService"' -P 'Hellp=Value' File.xml 我的参数文件的内容是 -m "Manhattan Item MockService" -P Hellp=Value 有没有人能够解释为什么在命令replace期间添加单引号?

隧道build立后的OpenVPN运行脚本

我很难搞清楚我该如何更新我的Cloudflare账户上的Alogging。 我已经设置了一个脚本来检查IP更改,并通过CloudFlare API推送更改。 问题来了,因为我使用的是 up /usr/local/bin/script 指令,当TUN / TAP设备被设置时脚本被调用。 (所以我还没有IP变化)。 我需要它在隧道成功应用后运行。 我试过使用up-delay指令,并ping(因为它是一个UDP服务器)。 但是这似乎也不起作用。 它看起来像这样: script-security 2 ping 10 ping-restart 60 up-delay /usr/local/bin/script down /usr/local/bin/script 我也尝试在脚本内部设置一个sleep 30命令,以便能够使用up命令启动它,问题是,如果我这样做,OpenVPN在继续连接过程之前等待脚本完成(所以过程暂停30秒,其中OpenVPN连接过程也暂停,因此只需要30秒)。 有任何想法吗? 也许服务器不答复ping请求? 我在这里100%失利。

是否有可能传递机器的主机名作为命令`邮件`在Linux的主题?

我试图从服务器列表中提取一些信息,所以我写了这一行,然后通过ssh user@machine 'command'传递: # hostname > info ; cat /etc/*-release | awk 'NR==3' >> info ; uname -a >> info ; rpm -qa >> info ; mail -s '`hostname` install list' [email protected] < info 我也试过: [root@itai-test ~]# hostname > info ; cat /etc/*-release | awk 'NR==3' >> info ; uname -a >> info ; rpm […]

脚本或某人观看从我的服务器(HTTP)下载文件的人

我试图找出一种方法来实时看到人们下载文件,以确保从该人下载是成功的。 我似乎无法find我需要的searchstring。 任何帮助表示赞赏! 我有一些我创build的bash脚本,用于实时监控我的HTTPlogin,Mail,SSH和其他一些事情以及端口连接和负载。