wget-ftp文件下载使用代码

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以在 Linux 系统中使用以下命令下载 wget: Ubuntu/Debian 系统: ``` sudo apt-get update sudo apt-get install wget ``` CentOS/RHEL 系统: ``` sudo yum install wget ``` Fedora 系统: ``` sudo dnf install wget ``` 如果您的 Linux 发行版不在上面的列表中,请查看您的发行版文档以获取更多信息。 ### 回答2: 要在Linux上下载wget命令,可以按照以下步骤进行操作: 1. 打开终端:在Linux系统中,打开终端是执行命令和操作的主要方式。你可以通过在搜索栏中键入“终端”或使用快捷键Ctrl+Alt+T来打开终端。 2. 更新软件源:在开始下载wget之前,应该先更新软件源,以确保系统能够找到最新的软件包。在终端中,输入以下命令并按Enter键执行: sudo apt update 3. 安装wget:输入以下命令,并按Enter键执行: sudo apt install wget 这将安装wget命令及其相关的软件包。 4. 确认安装:安装完成后,可以使用以下命令来确认是否成功安装wgetwget --version 如果成功安装,将显示wget的版本信息。 5. 开始使用wget:现在,你可以开始使用wget下载文件了。常用的wget命令是: wget [选项] [URL] 例如,要从某个网址下载文件,可以使用以下命令: wget http://example.com/file.zip 这将下载名为file.zip的文件到当前目录。 总结:要在Linux上下载wget命令,只需打开终端,更新软件源,安装wget,然后就可以开始使用wget下载文件了。 ### 回答3: 在Linux系统中,我们可以使用以下几种方式下载wget命令。 1.通过包管理器下载: 大多数Linux发行版都包含wget命令,可以使用系统的包管理器进行安装。例如,在Debian或Ubuntu系统上,可以使用以下命令下载和安装wget: sudo apt-get install wget 2.从wget官方网站下载: 可以通过wget的官方网站(https://www.gnu.org/software/wget/)下载最新版本的wget代码压缩包。可以在页面上找到tar.gz或tar.bz2文件。在终端中使用以下命令下载并解压缩压缩包: wget https://ftp.gnu.org/gnu/wget/wget-1.21.2.tar.gz tar -zxvf wget-1.21.2.tar.gz cd wget-1.21.2/ 然后,可以按照软件包内部提供的说明进行编译、配置和安装。例如,可以使用以下命令进行配置和编译操作: ./configure make 编译成功后,运行以下命令以安装wget: sudo make install 3.使用wget二进制文件: 如果您不想手动编译,也可以从一些第三方网站下载wget二进制文件。其中一些网站提供已编译的wget二进制文件供直接使用。需要注意的是,从第三方网站下载二进制文件时,需要确保下载的文件是来自可信的来源。 总结来说,我们可以通过包管理器安装wget,或者从wget官方网站下载并编译安装,或者从可信的第三方来源下载wget二进制文件。不同的方式都可以用于在Linux系统中获取wget命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值