‘壹’ linux 使用scp命令从一台机器复制文件到另一台linux机器上去
scp是 secure 的缩写, scp是 linux 系统下基于ssh登陆进行安全的远程文件拷贝命令。 linux 的scp命令可以在linux 服务器 之间复制文件和目录.
scp命令基本格式:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
scp命令的参数说明:
-1
强制scp命令使用协议ssh1
-2
强制scp命令使用协议ssh2
-4
强制scp命令只使用IPv4寻址
-6
强制scp命令只使用IPv6寻址
-B
使用批处理模式(传输过程中不询问传输口令或短语)
-C
允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q
不显示传输进度条。
-r
递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher
以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config
指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file
从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit
限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option
如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program
指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项
scp命令的实际应用
本地复制远程文件:(把远程的文件复制到本地)
scp [email protected]:/val/test/test.tar.gz /val/test/test.tar.gz
远程复制本地文件:(把本地的文件复制到远程主机上)
scp /val/test.tar.gz [email protected]:/val/test.tar.gz
本地复制远程目录:(把远程的目录复制到本地)
scp -r [email protected]:/val/test/ /val/test/
远程复制本地目录:(把本地的目录复制到远程主机上)
scp -r /val/ [email protected]:/val/
注:复制的是目录的话就要加-r参数
当同时有多个服务器的文件要复制到本地目录:
scp [email protected]:/var/cp1.tar.gz [email protected]:/var/cp2.tar.gz /var/tmp/
注意:最后面的一个必需是目录,前面的必须是文件,才能成功批量复制,复制中会提示多次输入密码。
‘贰’ java ganymed-ssh2,session 执行多条命令,最好可以在前一条的基础上,执行下一条。
多行命令用分好隔开就行了! 如“cd /home;ls -l”
‘叁’ ssh 命令怎么用
ssh命令用法:ssh+加要执行的命令,需在SSH 2客户端上使用。
1、SSH客户端版本查看。
有时需确认SSH客户端及其相应的版本号。使用ssh -V命令可以得到版本号。注意,Linux一般自带的是OpenSSH: 下面例子即表明该系统正在使用OpenSSH:
$ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003。
下面的例子表明该系统正在使用SSH2:
$ ssh -V ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu。
2、用SSH登录到远程主机。
当第一次使用ssh登录远程主机时,会出现没有找到主机密钥的提示信息。输入"yes"后,系统会将远程主机的密钥加入到主目录下.ssh/hostkeys下,这样就可继续操作。
3、调试SSH客户端会话。
当ssh连接出现问题时,需通过查看调试信息来定位这些错误。使用v选项(注意:是小写的v),即可查看调试信息。
4、用SSH退出符切换SSH会话。
远程登陆到一台主机A,然后从A登陆到B,如希望在A上做操作,还得再开一个终端。
当使用ssh从本机登录到远程主机时,希望切换到本地做一些操作,然后再重新回到远程主机。这时,不需中断ssh连接,只需按照如下步骤操作即可:
当已经登录到了远程主机时,可能想要回到本地主机进行一些操作,然后又继续回到远程主机。
(1)登入远程主机:
localhost$ ssh -l jsmith remotehost。
(2)已连接远程主机:
remotehost$。
(3)要临时回到本地主机,输入退出符号:“~”与“Control-Z”组合。
当输入“~”不会立即在屏幕上看到,按下<Control-Z>并且按回车之后一起显示。如下,在远程主机中以此输入“~<Control-Z>”remotehost$ ~^Z [1]+ Stopped ssh -l jsmith remotehost localhost$。
(4)已经退回到本地主机,ssh远程客户端会话就在UNIX后台中运行,可向下面那样查看它:
localhost$ jobs [1]+ Stopped ssh -l jsmith remotehost。
(5)可将后台运行的ssh会话进程切换到前台,重新回到远程主机,而无需输入密码:localhost$ fg %1 ssh -l jsmith remotehost remotehost$。
5、用SSH退出字符会话,显示信息。
要取得一些关于当前会话有用信息,可按以下方式完成。这只能在SSH 2客户端上使用。
登录到远程服务器:localhost$ ssh -l jsmith remotehost。
在远程服务器上,输入ssh退出字符~并输入s。会显示出很多有关当前ssh连接的有用信息。
‘肆’ java ssh登陆交换机执行命令
第一步下载java扩展包
第二步:解压文件把 jar包,拷贝到java的库目录下,我的是ubuntu14(/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext )
cp ganymed-ssh2-build210.jar /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext
第三步: 把默认账户修改成直接的账户密码
yang@yang:~/Downloads/java/ganymed-ssh2-build210/examples$ cat Basic.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class Basic
{
public static void main(String[] args)
{
String hostname = "127.0.0.1";
String username = "user";
String password = "password";
try
{
Connection conn = new Connection(hostname);
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");
Session sess = conn.openSession();
sess.execCommand("uname -a && date && uptime && who");
System.out.println("Here is some information about the remote host:");
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
System.out.println("ExitCode: " + sess.getExitStatus());
sess.close();
conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
System.exit(2);
}
}
}
第四步: 编译 javac Basic.java && java Basic
Here is some information about the remote host:
Linux yang 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
2014年 05月 03日 星期六 17:26:00 CST
17:26:00 up 6:09, 4 users, load average: 0.15, 0.21, 0.23
yang :0 2014-05-03 11:17 (:0)
yang pts/2 2014-05-03 16:34 (:0)
yang pts/26 2014-05-03 17:13 (:0)
yang pts/27 2014-05-03 17:24 (:0)
ExitCode: 0
‘伍’ xshell 6 的使用以及常用命令(附下载)
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
如何安装,请参考如下:
命令ls——列出文件
ls 显示当前目录文件
ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件
ls a* 列出当前目录下以字母a开头的所有文件
ls -l *.doc 给出当前目录下以.doc结尾的所有文件
命令cp——复制文件
cp afile afile.bak 把文件复制为新文件afile.bak
cp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下
cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/目录下
cp -a docs docs.bak 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项
cp -i 在覆盖前询问用户
cp -v 告诉用户正在做什么
命令rm——删除文件和目录 rm afile 删除文件afile
rm * 删除当前目录下的所有文件(未隐藏文件)。rm命令不删除目录,除非也指定了-r(递归)参数。
rm -rf domed 删除domed目录以及它所包含的所有内容
rm -i a* 删除当前目录下所有以字母a开头的文件,并且在每次删除时,提示用户进行确认
4
命令mv——移动和重命名文件 mv aflie bfile 将afile重命名为bfile
mv afile /tmp 把当前目录下的afile移动到/tmp/目录下
5
命令cd——更改目录
cd 切换到主目录
cd ~ 切换到主目录
cd /tmp 切换到目录/tmp
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到到上一级目录
cd ../.. 切换到上二级目录
cd ~ 切换到用户目录,比如是root用户,则切换到/root下