linux 如何从远程终端下载文件到本地磁盘? 我的系统也是linux的,想从远程终端(ssh.)上复制文件到本地
第一种方式:
SecureCRT下
上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下。
下载文件只需在shell终端仿真器中输入命令“sz 文件名”,即可利用Zmodem将文件下载到本地某目录下。
通过“File Transfer”可以修改下载到本地的默认路径。设置默认目录:options-->session options-->file transfer。
或者
下载文件存放位置在securtCRT中设置,位于:
英文版 options — session options — X/Y/Zmodem。
中文版 选项— 会话选项— X/Y/Zmodem。
第二种方式:用sftp
securecrt 按下ALT+P就开启新的会话 进行ftp操作。
输入:help命令,显示该FTP提供所有的命令
pwd: 查询linux主机所在目录(也就是远程主机目录)
lpwd: 查询本地目录(一般指windows上传文件的目录:我们可以通过查看”选项“下拉框中的”会话选项“,如图二:我们知道本地上传目录为:D:/我的文档)
ls: 查询连接到当前linux主机所在目录有哪些文件
lls: 查询当前本地上传目录有哪些文件
lcd: 改变本地上传目录的路径
cd: 改变远程上传目录
get: 将远程目录中文件下载到本地目录
put: 将本地目录中文件上传到远程主机(linux)
quit: 断开FTP连接
package jsch;
import javaioFile;
import javaioFileInputStream;
import javautilProperties;
import comjcraftjschChannel;
import comjcraftjschChannelSftp;
import comjcraftjschJSch;
import comjcraftjschJSchException;
import comjcraftjschSession;
public class Test {
protected String host;//sftp服务器ip
protected String username;//用户名
protected String password;//密码
protected String privateKey;//密钥文件路径
protected String passphrase;//密钥口令
protected int port = 22;//默认的sftp端口号是22
/
获取连接
@return channel
/
public ChannelSftp connectSFTP() {
JSch jsch = new JSch();
Channel channel = null;
try {
if (privateKey != null && !""equals(privateKey)) {
//使用密钥验证方式,密钥可以使有口令的密钥,也可以是没有口令的密钥
if (passphrase != null && ""equals(passphrase)) {
jschaddIdentity(privateKey, passphrase);
} else {
jschaddIdentity(privateKey);
}
}
Session session = jschgetSession(username, host, port);
if (password != null && !""equals(password)) {
sessionsetPassword(password);
}
Properties sshConfig = new Properties();
sshConfigput("StrictHostKeyChecking", "no");// do not verify host key
sessionsetConfig(sshConfig);
// sessionsetTimeout(timeout);
sessionsetServerAliveInterval(92000);
sessionconnect();
//参数sftp指明要打开的连接是sftp连接
channel = sessionopenChannel("sftp");
channelconnect();
} catch (JSchException e) {
eprintStackTrace();
}
return (ChannelSftp) channel;
}
/
上传文件
@param directory
上传的目录
@param uploadFile
要上传的文件
@param sftp
/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
sftpcd(directory);
File file = new File(uploadFile);
sftpput(new FileInputStream(file), filegetName());
} catch (Exception e) {
eprintStackTrace();
}
}
/
下载文件
@param directory
下载目录
@param downloadFile
下载的文件
@param saveFile
存在本地的路径
@param sftp
/
public void download(String directory, String downloadFile,
String saveFile, ChannelSftp sftp) {
try {
sftpcd(directory);
sftpget(downloadFile,saveFile);
} catch (Exception e) {
eprintStackTrace();
}
}
/
删除文件
@param directory
要删除文件所在目录
@param deleteFile
要删除的文件
@param sftp
/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
sftpcd(directory);
sftprm(deleteFile);
} catch (Exception e) {
eprintStackTrace();
}
}
public void disconnected(ChannelSftp sftp){
if (sftp != null) {
try {
sftpgetSession()disconnect();
} catch (JSchException e) {
eprintStackTrace();
}
sftpdisconnect();
}
}
}
后面跟上本地路径,下载到当前目录:
scp -r root@123671193:/var/lamp/abctxt /
下载到/tmp:
scp -r root@123671193:/var/lamp/abctxt /tmp
用 这个命令 吧
scp 可以在 2个 linux 主机间复制文件;
命令基本格式:
scp [可选参数] file_source file_target
======
从 本地 复制到 远程
======
复制文件:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
例子:
scp /home/space/music/1mp3 root@wwwcumteducn:/home/root/others/music
scp /home/space/music/1mp3 root@wwwcumteducn:/home/root/others/music/001mp3
scp /home/space/music/1mp3 wwwcumteducn:/home/root/others/music
scp /home/space/music/1mp3 wwwcumteducn:/home/root/others/music/001mp3
网站模板库 » linux 如何从远程终端下载文件到本地磁盘? 我的系统也是linux的,想从远程终端(ssh.)上复制文件到本地
0条评论