Articles of 壳

使用curl执行一个php文件

我的问题:我在服务器A上有一个bash脚本,而在另一个服务器B上有一个php脚本。服务器A上的shell脚本用于在其他服务器上运行php脚本,但是前几天一个人将一个错误的rm -rf命令放在一个错误的目录中,并将其删除。 我有这个shell脚本的旧备份,但在第二个服务器上调用php脚本的代码丢失。 这几行(如果我记得好的话其实是一行)是几年前另一个人写的,谁又不和我们一起工作,我也不能联络她。 我不是一个PHP的人,这种语言是相当新的,并在过去两天searchnetworking上的一些提示,没有结果,我决定在这里张贴。 我作为可以运行shell脚本的用户login到服务器A. 我有另外几个用来login服务器B的用户名/密码。这个用户可以运行php脚本。 这是这个PHP脚本: <?php /* php -f invoke_manage_auto_requests_files.php "create|delete|upload" "vide|pre|res|obs" "nrcc|cgcm|arpege|crcm|rc|sta|md|mds" id "processing|nom du fichier" eg . php -f invoke_manage_auto_requests_files.php create pre nrcc 15678 processing */ if($argv[1] == "upload") { $argv[5] = '@' . realpath($argv[5]); } $post_fields = array( 'ACTION' => $argv[1] , 'PREFIX' => $argv[2] , 'REQ_TYPE' => $argv[3] […]

如何永久chmod 777的PHP

在你开始杀我之前,我不应该嘲笑777,这和其他很多话题是截然不同的。 现在的情况是,我不能从web( /var/lib/folder/ )访问这个目录,但我希望PHP能够访问它,以便它可以从目录中读取,写入和执行。 一个简单的解决scheme是将chmod(作为root),777文件夹,但是这里出现了问题。 约翰说,另一个用户写这个目录。 正如任何人都知道的那样,John写的文件使他有资格成为所有者,因此PHP不是所有者。 不知何故,约翰写的文件总是成为755而不是777(因此PHP无法访问)。 有什么办法可以: 使约翰总是写在777或那个目录 制作目录,使得John编写的所有文件都可以被PHP完全访问。

sudo的php exec在CentOS上失败

我正在运行CentOS 6,因为httpd是以用户'apache'的身份执行的。 出于安全原因,我想用sudo作为用户“aq”的exec来执行: <?php exec("/usr/bin/sudo -u aq somescript.sh",$output,$return_val);?> 用visudo我添加了以下行: apache ALL = (aq) NOPASSWD: ALL 此外,我临时给Apache作为loginshell(/ bin / bash),以便能够testing /usr/bin/sudo -u aq somescript.sh 直接哪个工作。 php执行失败,因为如果sudo被调用,return_val会传递一个'1'。

使用PHP运行Shell脚本

我遇到了一个奇怪的问题。 我有一个button设置,当它被点击时,它将运行我使用PHP创build的shell脚本。 shell脚本是两个curl命令。 curl -H "Accept: application/xml" "http://blah/blah" > /tmp/listofchannels.xml curl -H "Accept: application/xml" "http://blah/blah" > /tmp/listofnodes.xml echo "Done!" 我已经使用shell_exec() , exec()和system()来运行这个PHP脚本,它运行成功。 但它不会将输出redirect到文件/tmp/listofchannels.xml和/tmp/listofnodes.xml 。 我已经使用了httpd错误日志的tail ,并显示卷发运行。 我什至会看到Done! 使用system()时显示在我的网页上,但不会创build文件。 如果我从命令行自己运行脚本,它完全可以工作。 这些文件确实被创build,但只有当我从命令行运行脚本而不是使用PHP代码。 有没有人有任何想法,为什么? 我想也许这是一个权限问题,但我没有得到任何错误,说我没有权限。 任何帮助将是伟大的! 更新 : 我发现了问题并修复了它。 这是SElinux。 也许我应该提到我在CentOS7上做这个。 我所做的是创build一个新的文件夹,并让所有者apache,然后允许Apache写入。 chown apache:apache /folder sudo chcon -t httpd_sys_rw_content_t /folder

Bash脚本不会等到命令正确执行完毕

我正在做一个非常简单的脚本,但由于某些原因,它似乎asynchronous运行。 singlePartDevice() { # http://www.linuxquestions.org/questions/linux-software-2/removing-all-partition-from-disk-690256/ # http://serverfault.com/questions/257356/mdadm-on-ubuntu-10-04-raid5-of-4-disks-one-disk-missing-after-reboot # Create single partition parted -s "$1" mklabel msdos # Find size of disk v_disk=$(parted -s "$1" print|awk '/^Disk/ {print $3}'|sed 's/[Mm][Bb]//') parted -s "$1" mkpart primary ext3 4096 ${v_disk} parted -s "$1" set 1 raid on return 0 } singlePartDevice "/dev/sdc" singlePartDevice "/dev/sdd" #/dev/sdc1 exists but /dev/sdd1 […]

如何确定一个文件的内容是否包含在另一个文件的内容中

首先,我很抱歉可能是一个相当愚蠢的问题,而这个问题不属于这里。 这里是我的问题:我有两个大的文本文件包含大量的文件名称,我们称之为A和B,并且我想确定A是否是B的一个子集,忽略顺序,即对于A中的每个文件名,查找if文件名也在B中,否则A不是子集。 我知道如何对文件进行预处理(除去文件名本身,删除不同的大写字母),但是现在我只想知道是否有一个简单的方法来使用shell命令执行任务。 差异可能不起作用,对吧? 即使我首先对这两个文件进行“sorting”,至less两个文件的排列顺序是相同的,因为A可能是B的一个子集,diff会告诉我每一行都是不同的。 再一次,如果问题不属于这里,我很抱歉,最后,如果没有简单的方法,我会写一个小程序来完成这个工作,但是因为我试图得到一个更好的句柄在shell命令中,我以为我会先问这里。

将数据从shell脚本插入到'安全'表中

嗨每个人我试图手动设置locking屏幕为一个摩托A855(Droid 1)设备我已经写了下面的shell脚本运行相同,但我得到exception,而运行代码,我跟着这个链接嵌套报价和这个链接将数据从ADB插入Sqlite ./adb shell su -c 'mount -o remount,rw /data' ./adb shell su -c 'sqlite3 /data/data/com.android.providers.settings/databases/settings.db "insert into secure values(50,'"'lockscreen.disabled'"',1);"' 我在运行脚本时遇到以下错误 sh: no closing quote /system/bin/sh: ": not found 请帮帮我 提前致谢

lpr命令不能与CYGWIN一起使用。

#!/bin/bash while : do if [ -e ./*.pdf ] then #printer=$(lpstat -p | grep printer | head -n1 | cut -d \ -f 2) printer=$(cat printer.ini) for file in *.pdf do echo "Printing $file" $(lpr -P $printer $file) echo "Moving $file" $(mv $file ./p) done fi done 当我试图在Windows使用CYGWIN运行此脚本它显示..lpr不是一个内部或外部命令..请给我一个解决scheme。

剥离错误或没有错误

我试图在linux中使用strip命令去除一组文件。 不过,我收到以下错误: strip: files : could not create temporary file to hold stripped copy: No error 然后命令完成,没有任何其他错误。 有没有错误的地带或没有错误? 如果有错误,我该如何解决?

当按下用Qt制作的GUI时启动一个shell脚本

我有一个shell脚本,在触摸屏PC(Uubntu Lucid Lynx)上执行时,需要在远程服务器上进行备份。 现在我想通过在正在运行的GUI应用程序中创build一个小button来实现自动化。 该应用程序是使用Qt和C ++构build的。 到目前为止,我可以使用QFileDialog打开文件夹浏览器并导航到.sh文件,但可以直接打开定义的.sh文件(即通过定义名称和位置)? 有一些提示,QProcess应该使用,但我有点困惑它的实现。 提前致谢。