小编bik*_*ben的帖子

PHP shell_exec ssh连接

我知道这个问题之前已经有很多不同的问题,但是我仍然在摸不着为什么我不能让这个问题起作用.

首先,我有两个SLES服务器设置,它们是服务器A和服务器B,它们都运行在一个小型专用网络上,只能由一个专门的团队访问.

服务器A配置为运行Apache,PHP,MYSQL和ssh的Web服务器,所有这些服务器都运行无问题.

服务器B用于运行安装和激活ssh的内侧任务.

我已经在服务器A上创建了我的rsa密钥,并将其安装在服务器B上,当在命令行运行时,我会立即登录,不需要输入密码.我在服务器A上为root和nobody帐户重复了这个过程.

我已将这个PHP页面添加到服务器A,如下所示:

<?php
shell_exec('ssh root@192.162.0.5 ./StartTest.sh');

header("Location: archive.php?page=home"); 
?>
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时它不会创建我的文件夹.如果我从命令行运行它,它适用于两者(我想两者,我不记得我是否尝试过现在cli上的nobody帐户)root&nobody帐户.我甚至将无人帐户添加到根组,但仍然没有快乐.

我在这里错过了一些东西吗?我想做的就是通过php&ssh从服务器A连接到服务器B来执行一个命令并重定向到网站上的另一个页面.

由于我的对乙酰氨基酚库存不足,所以任何帮助都会受到赞赏.

php linux ssh shell-exec

5
推荐指数
1
解决办法
1万
查看次数

使用空白/空grep的Do语句返回?

这是我的foobar.sh的代码:

!#/bin/bash
while [ 1 ]
do
    pid=`ps -ef | grep "mylittleprogram" | grep -v grep | awk ' {print $2}'`
    echo $pid
    if [ "$pid"="" ]
    then
            echo "Process has ended lets get this show on the road..."
            exit
    else
            echo "Process has not ended yet"
    fi
    sleep 6
done
Run Code Online (Sandbox Code Playgroud)

我基本上运行一个infinate循环,一旦受监视的进程结束就会执行命令X但是当我的脚本循环时我最终收到以下消息:

./foobar.sh: line 7: [: missing `]'
Process has not ended yet
Run Code Online (Sandbox Code Playgroud)

有没有办法让脚本接受零反馈将触发我的'Then'语句并执行命令X,因为它不喜欢当前的方法.

bash shell if-statement while-loop

5
推荐指数
1
解决办法
3万
查看次数

Bash Shell Do While Loop Infinite循环?

基本上这是我的代码:

bay=$(prog -some flags)
while [ $bay = "Another instance of this program is running, please exit it first" ]
do
echo "Awaiting Access to program"
do
.....
Run Code Online (Sandbox Code Playgroud)

我有一个程序,它只允许一个实例一次运行,因为它与我的硬件交互的方式,当另一个实例运行时它踢出以下消息"该程序的另一个实例正在运行,请先退出它" .

我需要能够运行多个脚本,这将使用相同的程序,所以我决定使用上面的代码.我的问题是,当我运行我的两个脚本时,一个人将获得对程序的访问并按照需要运行,但另一个将注意到错误,然后卡在一个无限循环中,回显"等待访问程序".

错过了什么?Statement是执行CLI命令还是只是重新执行其原始执行?或者我的问题在哪里?

linux bash shell while-loop do-while

4
推荐指数
1
解决办法
4519
查看次数

SQLite INSERT SELECT查询结果到现有表?

我之前没有使用过SQLite,但是我一直在讨论它.我需要将select查询的结果插入到现有表中,但即使经过一些冗长的Web阅读,我仍然无法完成这个简单的任务.我正在使用SQLite Studio来管理我的数据库,他们的网站提出了一种方法,但它似乎不起作用,因为SQLite Studio会抛出"附近"INSERT":语法错误.有人可以帮助我或者请指出我正确的语法方向.

谢谢你

sqlite

3
推荐指数
1
解决办法
2万
查看次数

BASH Shell 带有 IF ELSE 语句的无限循环

好吧,我知道我问过类似的问题,我了解如何进行无限循环:

while [ 1 ]
do
    foo
    bar
        then
sleep 10
done
Run Code Online (Sandbox Code Playgroud)

但是,如果我想在这个循环中运行一些(相当多的)IF ELSE 语句,一旦它们完成,我将如何让脚本继续循环,我将如何处理这个问题?

bash shell if-statement infinite-loop while-loop

3
推荐指数
1
解决办法
2万
查看次数

Bash IP IF THEN ELSE声明

我需要从多台机器运行一个脚本,但每台机器都需要执行唯一的命令.

我认为bash脚本可以做到这一点,但我在这个部门并不太精明.

我需要的代码看起来类似于下面的代码(或者它会).我知道它远非完美或功能性,但它真的只是为了帮助表达我正在寻找的东西.

有人可以帮我这个剧本吗?

#/bin/bash
IP= ifconfig eth0 | grep inet | grep -v inet6 | cut -c 7-17 

If [$IP -eq 192.168.32.1]
then mkdir IPFolder-1
more code...
else
if [$IP -eq 192.168.32.2]
then mkdir IPFolder-2
more code...
else
if [$IP -eq 192.168.32.5]
then mkdir IPFolder-5
more code...
Run Code Online (Sandbox Code Playgroud)

unix linux bash scripting grep

2
推荐指数
1
解决办法
1963
查看次数

Bash shell'if'语句比较不同命令的输出

使用Sam Ruby给我的一个改编的例子 我已经调整过,所以我可以展示我想要实现的目标.

app1=$(someapp -flag | grep usefulstuff | cut -c 5-10)
if [$app1 = (someapptwo -flag | grep usefulstuff | cut -c 20-25)]; then
mkdir IPFolder-1
elif ...blah blah
fi 
Run Code Online (Sandbox Code Playgroud)

我可以使用上面显示的grep,还是我在错误的树上吠叫?或者看起来像这样的东西:

app1=$(someapp -flag | grep usefulstuff | cut -c 5-10)
app2=$(someapptwo -flag | grep usefulstuff | cut -c 20-25)
if [$app1 = $app2]; then
mkdir IPFolder-1
elif ...blah blah
fi 
Run Code Online (Sandbox Code Playgroud)

linux bash shell grep if-statement

2
推荐指数
1
解决办法
1万
查看次数

BASH SHELL如果ELSE在后台运行命令

我之前使用过该&命令使脚本在后台运行另一个脚本,如下所示:

#!/bin/bash
echo "Hello World"    
script1.sh &
script2.sh &
echo "Please wait..."
Run Code Online (Sandbox Code Playgroud)

但是让我说我​​有另一个带有IF ELSE语句的脚本,我想设置一个ELIF语句mid flow作为后台任务,&然后继续处理剩下的脚本,因为知道ELIF的其余部分将进行运行在后台:

#!/bin/bash
if cond1; then
   stuff
   sleep 10 &
   stuff
   stuff
elif cond2; then
   something else
else 
   echo "foo"
fi
stuff
echo "Hello World"
Run Code Online (Sandbox Code Playgroud)

我真的希望这是有道理的任何帮助将不胜感激.

bash shell if-statement background-process

2
推荐指数
1
解决办法
2757
查看次数