shell脚本写curl命令,shell脚本执行curl命令
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则页面正常。