- 浏览: 153565 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
lyaqys:
lz实现的OptimisticExclusiveLock有点问 ...
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
private boolean wget(String file) {
// wget file
// targetDir must has been created, or cleared if necessary
DirUtils.mkDir(targetDir + "/" + UrlParser.getFilePath(file));
String orig_url = file;
String localFile = targetDir + "/" + file;
file = remoteServerConf.getProtocol() + "://" + file;
String cmd = "wget -t3 -T60 -c " + file + " -O " + localFile;
if (remoteServerConf.getProtocol().equalsIgnoreCase("ftp") == true
&& remoteServerConf.getFTPMode() == 0) {
cmd += " --no-passive-ftp";
}
if (remoteServerConf.getUser() != null && !remoteServerConf.getUser().isEmpty()) {
cmd += " --user " + remoteServerConf.getUser();
cmd += " --password " + remoteServerConf.getPassword();
}
String[] cmds = { "/bin/bash", "-c", cmd };
logger.info("start to exec \t" + cmd);
BufferedReader br = null;
int result = -1;
// 5850K .......... .......... .......... .......... .......... 97% 923K
// 0s
// 350K ,,,,,,, 100% 0.00 =0s
// 0K .......... .......... .......... .......... .......... 0% 309K 19s
// 50K .......... .......... .......... .......... .......... 1% 928K
// 13s
Matcher matcher = Pattern.compile("^\\s*(\\d+)K", Pattern.CASE_INSENSITIVE)
.matcher("");
try {
Runtime t = java.lang.Runtime.getRuntime();
Process p = t.exec(cmds);
br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
long prev_report_size = -(this.reportSizeInterval);
long curr_size = -(this.reportSizeInterval);
String msg = null;
while ((msg = br.readLine()) != null) {
// try to get download size
matcher.reset(msg);
if (matcher.find()) {
curr_size = Long.parseLong(matcher.group(1)) * 1024;
// System.out.println("curr_size: " + curr_size + "\t" +
// file);
if ((curr_size - prev_report_size) >= this.reportSizeInterval) {
updateDownloadSize(curr_size);
// logger.info("Has downloaded: " + curr_size + "\t" +
// file);
prev_report_size = curr_size;
}
}
// try to get length
// Length: 1181995 (1.1M)
// Length: 6213828 (5.9M), 4856852 (4.6M) remaining
// [application/octet-stream]
// Length: 366356 (358K)
// Length: 1181995 (1.1M), 1172559 (1.1M) remaining
else if (msg.startsWith("Length")) {
String[] fields = msg.split(" +");
if (fields.length > 1) {
this.length = Long.parseLong(fields[1]);
updateTotalLength(this.length);
logger.info("Total Length: " + length + "\t" + file);
}
}
}
br.close();
result = p.waitFor();
if (result == 0) {
if (uncompress(orig_url) != true)
{
logger.error("failed to uncompress the file" + orig_url);
}
else
return true;
}
} catch (IOException e) {
logger.error("IOException in wget " + file, e);
} catch (InterruptedException e) {
logger.error("InterruptedException in wget " + file, e);
} finally {
try {
br.close();
} catch (IOException e) {
logger.error("IOException in closing buffer reader " + file, e);
}
}
return result == 0 ? true : false;
}
// wget file
// targetDir must has been created, or cleared if necessary
DirUtils.mkDir(targetDir + "/" + UrlParser.getFilePath(file));
String orig_url = file;
String localFile = targetDir + "/" + file;
file = remoteServerConf.getProtocol() + "://" + file;
String cmd = "wget -t3 -T60 -c " + file + " -O " + localFile;
if (remoteServerConf.getProtocol().equalsIgnoreCase("ftp") == true
&& remoteServerConf.getFTPMode() == 0) {
cmd += " --no-passive-ftp";
}
if (remoteServerConf.getUser() != null && !remoteServerConf.getUser().isEmpty()) {
cmd += " --user " + remoteServerConf.getUser();
cmd += " --password " + remoteServerConf.getPassword();
}
String[] cmds = { "/bin/bash", "-c", cmd };
logger.info("start to exec \t" + cmd);
BufferedReader br = null;
int result = -1;
// 5850K .......... .......... .......... .......... .......... 97% 923K
// 0s
// 350K ,,,,,,, 100% 0.00 =0s
// 0K .......... .......... .......... .......... .......... 0% 309K 19s
// 50K .......... .......... .......... .......... .......... 1% 928K
// 13s
Matcher matcher = Pattern.compile("^\\s*(\\d+)K", Pattern.CASE_INSENSITIVE)
.matcher("");
try {
Runtime t = java.lang.Runtime.getRuntime();
Process p = t.exec(cmds);
br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
long prev_report_size = -(this.reportSizeInterval);
long curr_size = -(this.reportSizeInterval);
String msg = null;
while ((msg = br.readLine()) != null) {
// try to get download size
matcher.reset(msg);
if (matcher.find()) {
curr_size = Long.parseLong(matcher.group(1)) * 1024;
// System.out.println("curr_size: " + curr_size + "\t" +
// file);
if ((curr_size - prev_report_size) >= this.reportSizeInterval) {
updateDownloadSize(curr_size);
// logger.info("Has downloaded: " + curr_size + "\t" +
// file);
prev_report_size = curr_size;
}
}
// try to get length
// Length: 1181995 (1.1M)
// Length: 6213828 (5.9M), 4856852 (4.6M) remaining
// [application/octet-stream]
// Length: 366356 (358K)
// Length: 1181995 (1.1M), 1172559 (1.1M) remaining
else if (msg.startsWith("Length")) {
String[] fields = msg.split(" +");
if (fields.length > 1) {
this.length = Long.parseLong(fields[1]);
updateTotalLength(this.length);
logger.info("Total Length: " + length + "\t" + file);
}
}
}
br.close();
result = p.waitFor();
if (result == 0) {
if (uncompress(orig_url) != true)
{
logger.error("failed to uncompress the file" + orig_url);
}
else
return true;
}
} catch (IOException e) {
logger.error("IOException in wget " + file, e);
} catch (InterruptedException e) {
logger.error("InterruptedException in wget " + file, e);
} finally {
try {
br.close();
} catch (IOException e) {
logger.error("IOException in closing buffer reader " + file, e);
}
}
return result == 0 ? true : false;
}
发表评论
-
java 栈内存解惑
2013-10-23 23:41 673int j = 0; j = j++; ... -
简单的linux -c http-client
2013-10-23 15:35 4726#include<stdio.h> #includ ... -
linux进程cpu资源分配命令nice,renice,taskset
2013-09-04 14:03 1163nice,renice 指定进程运行的优先级 taskset ... -
c 专家编程
2013-08-13 17:06 690总结: -2> int * a = NUL ... -
Linux中线程与CPU核的绑定
2013-08-09 15:15 2128最近在对项目进行性能 ... -
建议编译的时候加警告 atof
2013-08-07 20:46 711#include <stdlib.h> ... -
feodra 17 安装 chrome
2013-08-04 01:35 7681: 下载:http://www.google.cn/chro ... -
Sudo提权出现:xx用户不在 sudoers 文件中
2013-08-03 20:22 913Sudo提权出现:xx用户不在 sudoers 文件中 症状 ... -
select,epoll,poll比较
2013-07-28 17:13 684select,poll,epoll简介 se ... -
gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数
2013-07-22 22:45 902我们用gcc编译程序时,可能会用到“-I”(大写i),“-L” ... -
Linux下如何将进程绑定在特定的CPU上运行
2013-07-22 10:52 990Linux下如何将进程绑定在特定的CPU上运行? 以root用 ... -
Google Guava Collections 使用介绍
2013-07-16 18:10 709Google Guava Collections 使用介绍 J ... -
Google Collections(Guava)中强大的Concurrent MapMaker
2013-07-16 18:07 1358仔细研究了刚发布1.0版本的Google Collection ... -
linux运维常用命令
2013-07-13 20:40 886推荐一个实用命令:awk '{x+=$2} END {prin ... -
linux 进程通信方式
2013-07-07 20:46 621# 管道( pipe ):管道是一种半双工的通信方式,数据只能 ... -
java wait 研究
2013-06-28 17:07 779[color=red]java wait 的使用必须放在实例对 ... -
java钩子函数的使用已经kill
2013-06-27 22:31 1556package com.aircoder.test; imp ... -
java获取所有的线程信息
2013-06-24 20:02 1600public class T2 { public sta ... -
判断两个一个链表是否存在循环(C专家编程中的问题)
2013-06-24 15:35 914判断两个一个链表是否存在循环(C专家编程中的问题) #incl ... -
java 获取mysql datetime 时间注意
2013-05-16 14:43 1522class SPubinfo implements RowMa ...
相关推荐
wget是一款强大的命令行下载工具,主要用于从互联网上下载文件,它支持HTTP、HTTPS和FTP协议,甚至可以处理通过代理服务器的下载任务。wget以其非交互式、可后台运行、断点续传以及批量下载等功能,被广泛应用于系统...
在Android环境下,使用wget可以帮助我们实现后台下载,尤其适用于大文件和需要断点续传的场景。 要将wget移植到Android,我们需要做以下几步: 1. **获取源代码**:首先,你需要从wget的官方网站或其他可靠的源...
例如,使用bash脚本配合`curl`或`wget`下载FTP上的ZIP文件,然后用`unzip`解压。在Python中,可以编写一段代码来连接FTP服务器,下载文件,然后调用`zipfile`模块解压缩。 6. 安全考虑: 在进行FTP操作时,应尽可能...
脚本中应包含下载文件的逻辑,以及下载成功后的清理代码。 6. **定时任务**:在描述中提到了"TimerCleanLog",这可能是指定时清理日志文件的功能。可以使用cron(Linux)或Task Scheduler(Windows)设置定时任务,...
然而,这些Java代码具体是如何与wget的使用方法关联起来的,没有足够的信息来进行详细解释。如果它们是博客文章的一个示例应用,那么可能涉及到如何使用wget下载Java项目依赖,然后构建和运行这些测试。
JDBC(Java Database Connectivity)是Java平台中的一种标准API,它允许Java程序通过编写Java代码来访问各种类型的数据库。使用这个驱动,JMeter可以方便地对MySQL数据库进行接口自动化测试,包括性能测试、负载测试...
例如,你可以使用`javac`编译Java源代码,使用`jar`打包应用程序,或者使用`javadoc`生成API文档。同时,确保了解JDK7引入的新特性,如Try-with-resources语句、多线程Fork/Join框架、钻石操作符()等,这些都将...
- `wget`:下载HTTP或FTP资源。 - `rpm`:RPM软件包管理器,用于安装、卸载、查询和升级软件。 4. **输入/输出重定向与管道**: - 了解如何将命令的标准输出重定向到文件或另一个命令。 - 使用管道(|)连接...
wget具备很多强大的功能,如支持HTTP、HTTPS和FTP协议,支持断点续传,支持多种下载方式如单文件下载、递归下载、镜像下载等。在安装wget时,使用了yum(Yellowdog Updater Modified)命令行工具,它是CentOS中的包...
此外,`wget`工具是必不可少的,它允许你在Linux环境中通过HTTP、HTTPS和FTP协议下载文件。 在开始之前,确认系统是否已安装`wget`。可以通过命令`rpm -qa | grep wget`来检查。如果未安装,使用`yum install wget`...
使用 wget 命令下载源代码,例如 wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz,然后使用 tar 命令解压缩,例如 tar -zxvf gcc-4.8.2.tar.gz。 第二步:安装依赖库 GCC 依赖于三个库:...
使用FTP工具(如XShell/XFTP/FinalShell等)将打包好的JAR文件上传至服务器。这里以XFTP为例: 1. 在XFTP中打开连接至服务器。 2. 导航至你想存放JAR文件的目录。 3. 将JAR文件拖拽至服务器窗口中完成上传。 **1.4...
10. **网络传输**: 当文件在互联网上传输时,了解HTTP、FTP等协议以及相关的下载工具(如wget、curl)可以帮助高效地获取和分享压缩文件。 以上是根据一般情况下的压缩文件可能涉及的IT知识点。如果你能提供更具体...
- 从网络上下载所需的额外文件,如ICM配置文件用于颜色校正。 5. **选择打印机型号**: - 使用`./getweb1020`命令来获取适用于HPLaserJet 1020的固件文件。 6. **安装驱动程序**: - 使用管理员权限执行`su`或`...
- **源码编译安装**:下载软件源代码,使用编译工具如 `gcc` 进行编译、链接,然后安装。 2. 文件上传下载工具: - **FileZilla**:是一款流行的 FTP 客户端,用于在本地计算机和远程服务器之间传输文件。 - **...
- **下载Jenkins war包**:通过命令 `wget http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/war-stable/1.651.2/jenkins.war` 下载适合的Jenkins版本。 #### 五、构建自动化脚本 为了更好地控制集成部署环境,...
通过FTP工具将Tomcat的压缩包上传至Linux服务器上的某个目录。 **2. 解压并启动Tomcat** 将上传的Tomcat压缩包解压至所需目录。例如: ``` tar -zxvf apache-tomcat-8.0.53.tar.gz ``` 进入`apache-tomcat-...
从GCC官方网站或者镜像站点下载源代码包。例如,你可以使用`wget`命令: ``` wget https://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz ``` 5. **解压源代码**: 使用`tar`命令解压下载的文件: ``` ...
- 下载Python 3.8.12源码:`wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz` - 解压缩和安装:`tar -zxvf Python-3.8.12.tgz`, `cd Python-3.8.12`, `./configure`, `make && make install` -...
在安装Linux内核源代码时,我们需要安装kernel-package、libncurses5-dev、fakeroot、wget、bzip2等工具。然后,我们可以下载Linux内核源代码,编译并安装。 在安装ftp服务器时,我们需要安装vsftpd。安装完成后,...