curl
测试域名绑定
我常需要在开发环境中,测试某台服务器上的Web Server是否正确绑定了域名。比如,我希望在服务器192.168.1.10
上绑定www.kuqin.com
。但需要修改hosts才能看到效果,这活儿很累人。
所谓“域名绑定”,就是把host映射到对应的目录。如果手头有cURL,可以使用 -H
参数,在请求头信息中多写一个 Host
字段。就可以测试是否配置正确了。
# curl -H "Host: www.kuqin.com" http://192.168.1.
场景二:查看头信息
响应头信息中包含了很多东西。除了HTTP版本和响应代码,还有Server、Content-Type、Content-Length等信息,如果有写入Cookie的操作,也会体现在头信息中。
使用cURL的 -I 参数,就可以看到这些头信息。比如淘宝的:
# curl -I http://www.taobao.com/
场景三:跟踪URL跳转
如果遇到了一个多次跳转的URL,可以先用curl的 -L
参数看看,这个URL最终跳转到了什么地方。-L
参数最好配合 -I
使用,不然cURL会把最后一次请求获得的数据输出到控制台。
没有合适的URL拿来做例子,意会一下吧
场景四:发送压缩的请求
cURL提供了一个 –compress
参数,可以用来发送支持压缩的请求。但使用了–compress之后,虽然传输过程是压缩的,cURL的输出还是解压之后的,难以看到效果。
我一般用 -H
参数,自己写一个 Accept-Encoding
字段在头信息中。
curl -H "Accept-Encoding: gzip" http://www.kuqin.com/
如果直接运行上面的命令,会得到一堆乱码,因为cURL输出的内容,是压缩后的数据。不妨在后面接一个gunzip试试。
curl -H "Accept-Encoding: gzip" http://www.kuqin.com/ | gunzip
使用gunzip解压之后,信息又被还原了。
场景五:忽略证书错误
平日上网,遇到证书错误一定要小心。但我在工作中,经常需要用自签的假证书搭建开发环境。cURL在遇到证书错误时无法使用,使用 -k
参数就可以让它不做证书校验。
netstat -apln (这个n很重要,曾经有一次要看一个端口有没有起来,没有带n参数,实际上端口是起来了,但是就是grep不到)
tail -f(从尾部监听) -n (后面跟数字,表示从尾部向上多少行)
awk出处文件到指定路径
awk XXX -F"exp=|,count" '{print $2","$4,total > "lsd.data"}'
java调用shell脚本
/*
例如.test.sh内容为
echo "hello world" >> lsd.txt
lsd.txt的输出目录为workPath
*/
Runtime rt = Runtime.getRuntime();
String workPath = "/data/log";//子进程工作目录
String shellPath = "/data/log/test.sh";
File dir = new File(workPath);
String params = "a b";//参数a b传入shell
String str[] =
{ "sh", "-c", "/bin/sh "+shellPath + " " +params };
Process pcs = rt.exec(str, null, dir);
BufferedReader br = new BufferedReader(new InputStreamReader(pcs.getInputStream()));
StringBuffer lines = new StringBuffer();
String line = new String();
while ((line = br.readLine()) != null)
{
lines.append(line).append("\n");
}
try
{
pcs.waitFor();
}
catch (InterruptedException e)
{
lines.append("processes was interrupted").append("\n");
}
br.close();
int ret = pcs.exitValue();
分享到:
相关推荐
总之,Java调用Shell脚本是一个有效的方法来在Java程序中实现复杂的Linux环境下的操作,这种技术尤其适用于需要进行系统级操作和自动化任务的场景。掌握这一技术可以帮助开发者更好地实现跨平台的功能,尤其是在开发...
java 执行linux命令源码,java调用shell脚本源码,java web发布war到tomcat,servlet文件上传,ajax文件上传。 java web 上传war包、停止、启动、发布tomcat。 命令修改成自己的目录即可使用。
在Java开发中,有时我们需要远程连接到Linux服务器执行shell命令,比如进行系统管理、自动化运维或者数据处理等任务。在这种情况下,使用SSH(Secure Shell)协议是常见的解决方案,因为它提供了安全的网络通信。...
sshxcute 就是这样一个框架工具集,它基于 JSCH 构建,允许工程师利用Java 代码通过 SSH 连接远程批量执行 Linux/UNIX 系统上的命令或者脚本,同时加入了判断成功与否,取回输出等多种实用功能。sshxcute 不管是针对...
基于sshConnect的linux服务器的shell命令调用,并获取命令返回结果的实例。亲测有效!
在linux环境中,这三个用户都可以直接在任意目录下执行该shell脚本,可是在java代码中调用shell脚本时,报了如下4个错误: 1、sqlldr: command not found 2、sqlplus: command not found 3、0750: You may need to ...
java调用linux系统命令的封装工具类。
总之,Java调用shell脚本向DataX传递参数,尤其是在where条件中包含特殊字符时,需要关注字符串转义、shell命令构建以及安全问题。同时,合理设计和使用配置文件能有效提高代码的灵活性和可维护性。
### Java调用Shell脚本详解 #### 一、前言 在实际开发过程中,经常会遇到需要结合Java程序与Shell脚本进行操作的情况。通过Java调用Shell脚本不仅可以实现复杂的功能,还可以提高程序的灵活性和扩展性。本文将详细...
总的来说,这些资源为你提供了在Java环境中调用Shell脚本所需要的基础工具和示例,涵盖了SSH连接、命令执行和交互式脚本控制。通过学习和使用这些库,你将能够构建强大的系统管理工具和自动化解决方案。
在Java程序中调用Unix/Linux主机上的Shell命令,并返回相应执行结果。
首先,调用shell脚本的基本过程分为以下几个步骤: 1. **设置脚本执行权限**:在Linux系统中,执行一个文件(如shell脚本)需要有相应的执行权限。在Java中,我们可以通过`Runtime.getRuntime().exec()`方法来执行...
详细的linux shell脚本启动java代码类。
首先,Java调用shell脚本主要通过`Runtime`类或`ProcessBuilder`类来实现。`Runtime.getRuntime().exec()`方法允许我们执行系统命令,而`ProcessBuilder`提供了更灵活的命令构建和环境变量设置功能。下面是一个基本...
在Java编程中,有时我们需要与操作系统进行交互...总的来说,通过`Runtime`类,我们可以方便地在Java程序中执行Linux命令和shell脚本,实现客户端的多次调用。但同时需要注意异常处理和资源管理,以保证程序的健壮性。
在Java编程中,有时我们需要与操作系统进行交互,执行一些系统级别的任务,比如自动化运维、文件管理等,这时就可能需要用到调用Shell脚本。本文将详细介绍如何在Java中完美封装shell脚本的调用方法,并提供相关的...
本文将详细介绍如何使用Java调用Linux命令,以满足特定场景的需求,如文中提到的通过Java接口重启keepalived服务。首先,我们将理解Java调用Linux命令的基本原理,然后通过具体的代码示例来展示实现这一功能的过程。...
Java 远程调用Shell脚本客户端包是一个实用的工具,专为开发者设计,使得在Java应用程序中执行远程Shell命令变得简单而高效。这个包的主要功能是通过Java代码发起对远程服务器上的Shell脚本的调用,从而实现跨平台的...
Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...
Java调用Shell命令并获取执行结果的示例 在 Java 中调用 Shell 命令并获取执行结果是非常常见的操作,今天我们就来分享一个 Java 调用 Shell 命令并获取执行结果的示例。 Process 和 Runtime 类 在 Java 中,我们...