shell脚本写curl命令,shell脚本执行curl命令

http://www.itjxue.com  2023-01-23 07:51  来源:未知  点击次数: 

PHP 使用curl 执行远程服务器的一个shell脚本

可以啊,curl可以,http也可以啊

首先

假如?远程服务器有这些文件php脚本和shell脚本(分析数据的脚本)是在目标服务器上

a.php

data.php

data.sh

然后在a脚本里面运行shell命令,exec("cd?~/php/??php?./data.php?");

这样php就会运行data.php?可以在data.php里面在运行sh脚本

或者直接在a.php里面运行sh脚本

然后把计算好的数据存入数据库

这样你就可以用http或者curl去激活a.php.然后分析数据的脚本也就运行了

大概了解没?

大哥?你看明白没啊? 是要给远程发送shell命令?不是本地执行好吧?

远程动态输入命令?貌似不太安全啊~!

可以这样。a.php?cmd=cd?~/??sh?data.sh

然后a.php里面这样写

exec("{$_GET["cmd"]}");

太危险,相当不推荐

可以做好命令,然后去执行

a.php?cmd=a

然后a.php里面这样写

switch?($_GET["cmd"]}){

case?"a":

? exec("cd?~/php/??php?./data.php?");

break;

case?"b":

? exec("cd?~/php/??php?./xxxx.php?");

break;

}

如何通过一个变量在shell脚本一个curl命令

可以用sed编辑变量到模板文件,然后curl调用,使用——data-binary @文件名

PowerShell利用Curl发送请求

PowerShell能干什么呢?PowerShell首先是个Shell,定义好了一堆命令与操作系统,特别是与文件系统交互,能够启动应用程序,甚至操纵应用程序;第二,PowerShell允许将几个命令组合起来放到文件里执行,实现文件级的重用,也就是说有脚本的性质;第三,PowerShell能够能够充分利用.Net类型和COM对象,来简单地与各种系统交互,完成各种复杂的、自动化的操作。

当我们习惯了windows的界面模式就很难转去命令行,甚至以命令行发家的git也涌现出各种界面tool。然而命令行真的会比界面快的多,如果你是一个码农。

接到需求分析bug,需要访问http。那台机器属于product,不允许装postman。我只能手动命令行来发请求。发现了内置的PowerShell中有curl命令。试了半天,总是命令不对,google发现这个curl是冒名顶替的,只是一个Invoke-WebRequest的alias。 参考 。

获取帮助:

get-help invoke-webrequest 或者 get-help invoke-webrequest -online

online参数会打开官方文档 powershell

可以看到curl也是别名,linux的wget也在其中,这样为习惯其他平台的用户提供了方便,但是用法上也稍有区别

基本用法介绍:

查看返回结果

内容筛选

返回结果

示例:

得到如下内容

会发现content内容被截断了,想要获取完整的content,可加参数 | Select -ExpandProperty Content

此时content内容是完整的

在 d:\content.txt 可看到输出的内容

其他用法:

将content内容转为对象 ConvertFrom-json

你可以使用 ConvertTo-Json 转回JSON格式

请求带有token的uri, 其实就是在header中添加authorization对象

到此,接口请求基本够用

执行

没有权限,也是安全机制,可 参考官网

用管理员权限打开powershell,并输入命令,然后选择y

说明:

Restricted 执行策略不允许任何脚本运行。

AllSigned 和 RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本

正常执行.

怎样像执行一个命令一样执行一个脚本,不用输入脚本的相对路径或者绝对路径,甚至*.ps1扩展名。

那就将脚本的执行语句保存为别名吧:

完美执行.

到此powershell的使用curl发送请求的需求基本满足.

shell脚本实现执行http的一个post或者get方法是怎么实现的吖?

你好,可以通过curl和wget两个命令发送http请求:

一、get请求:

1、使用curl命令:

curl “” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地

curl -i “” 显示全部信息

curl -l “” 只显示头部信息

curl -v “” 显示get请求全过程解析

2、使用wget命令:

wget “”也可以

二、post请求

1、使用curl命令(通过-d参数,把访问参数放在里面):

curl -d “param1=value1?m2=value2” “”

2、使用wget命令:(--post-data参数来实现)

wget --post-data ‘user=foopassword=bar’

以上就是Linux模拟Http的get或post请求的方法了,这样一来Linux系统也能向远程服务器发送消息了。

示例:wget --post-data=""

三、curl (可直接发送格式化请求例如json)

示例:目标url:{srcRef}

命令:curl -H "Content-type: application/json" -X POST -d '{"srcRef":"1002"}'

用shell脚本curl命令检测url是否正常,异常就用mail发送报警邮件

for i in `cat sites.txt`

do

STATUS_CODE=`curl -o /dev/null -s -w %{http_code} $i`

echo -e "$i:\t$STATUS_CODE"

done

返回值为200则页面正常。

(责任编辑:IT教学网)

更多

推荐思科认证文章