scp命令详解
转自:https://wwwcnblogscom/likui360/p/6011769html
先说下常用的情况:
两台机器IP分别为:A10423816175,B432243473。
在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为:scp -r root@432243473:/home/lk /root。
具体过程为:
[root@XX ~]#scp-r root@432243473:/home/lk /root
root@432243473's password: k2sql100%000KB/s00:00
kzip100%17602KB/s00:00
bash_history 100%3200KB/s00:00
bash_logout 100%1800KB/s00:00
bashrc 100%23102KB/s00:00
k3sql 100%000KB/s00:00
bash_profile 100%19302KB/s00:00
[root@XX ~]#ls
在A服务器上将/root/lk目录下所有的文件传输到B的/home/lk/cpfile目录下,命令为:scp -r /root/lk root@432243473:/home/lk/cpfile。
具体过称为:
[root@XX lk]#scp-r /root/lk root@432243473:/home/lk/cpfile
root@432243473's password: k2sql100%000KB/s00:00
k3sql 100%000KB/s00:00
bash_profile 100%19302KB/s00:00
bash_logout 100%1800KB/s00:00
bash_history 100%3200KB/s00:00
kzip100%17602KB/s00:00
bashrc 100%23102KB/s00:00
[root@XX lk]#
scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了 ssh免密码登录 ,那在使用scp的时候密码都不用输入。
命令详解:
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
1.命令格式:
scp [参数] [原路径] [目标路径]
2.命令功能:
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
3.命令参数:
-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)的选项。
4.使用实例:
scp命令的实际应用概述:
从本地服务器复制到远程服务器:
(1) 复制文件:
命令格式:
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个指定了文件名
(2) 复制目录:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。 语法 rsync [OPTION] SRC DEST rsync [OPTION] SRC [USER@]host:DEST rsync [OPTION] [USER@]HOST:SRC DEST rsync [OPTION] [USER@]HOST::SRC DEST rsync [OPTION] SRC [USER@]HOST::DEST rsync [OPTION] rsync://[USER@]HOST[:PORT]/SRC [DEST] 对应于以上六种命令格式,rsync有六种不同的工作模式: 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz c foo:src 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@19216878192::www /databack 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@19216878192::www 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://19216878192/www
1、首先从服务端copy文件到本地。比如服务器的home下有一个文件是atxt,那么命令是:scp root@1921682208:/home/atxt /home,
2、此时会要你输入root的密码。输入后即可把atxt 拷贝到你当前电脑的home下了。
3、同理,将文件从本地拷贝到服务器:
scp /home/atxt root@1921682208:~,此时输入密码即可。
4、然后以上说的都是拷贝文件的,那么拷贝含有子目录的文件夹,加入-r参数即可,如:
下载较大的数据,推荐用FTP首先在服务器上面安装下FTP服务端比如说可以用SERV-U服务端安装然后在本地电脑上面安装FLASHFXP工具,用它登录FTP,并下载数据到本地电脑此种方法支持断点续传而且下载速度比较快值得推荐
个人建议希望对你有帮助
FileInfo file = new FileInfo("filepath1");
fileCopyTo("filepath2",true)
filepath1为服务器文件路径,可以为虚拟路径,如d:\atxt或\\computer1\book\atxt
filepath2为另一文件路径,如\\computer2\book\
比如服务器A的目录权限要复制到服务器B
步骤1获取服务器A所有目录
cd /
执行find / >qxout
步骤2修改qxout
sed 's/^/ls -ld /g' qxout
步骤3生成qxls,获取所有目录权限
执行sh qxout>qxls
步骤4编写脚本chownqxsh,脚本内容如下:最后会生成dochownsh的文件
while read A B C D E F G H I
do
echo "chown $C:$D \"$I\"">>dochownsh
done<qxls
如果提示软链接找不到可以忽略,其中第一位的字母"l"即表示此文件为软链接文件,
软链接文件的真实权限取决于源文件的权限
步骤5拷贝到服务器B执行dochownsh,修改文件和目录属主
搞定这里如果是想获取指定的目录,把开头的/换成指定的就可以了
0条评论