Linux-command之文件传输

scp

加密的方式在本地主机和远程主机之间复制文件

补充说明

scp命令 用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

语法

scp(选项)(参数)

选项

-1:使用ssh协议版本1;
-2:使用ssh协议版本2;
-4:使用ipv4;
-6:使用ipv6;
-B:以批处理模式运行;
-C:使用压缩;
-F:指定ssh配置文件;
-i:identity_file 从指定文件中读取传输时使用的密钥文件(例如亚马逊云pem),此参数直接传递给ssh;
-l:指定宽带限制;
-o:指定使用的ssh选项;
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。

参数

  • 源文件:指定要复制的源文件。
  • 目标文件:目标文件。格式为user@host:filename(文件名为目标文件的名称)。

实例

从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

从远程机器复制文件到本地目录

scp root@10.10.10.10:/opt/soft/nginx.tar.gz /opt/soft/

从10.10.10.10机器上的/opt/soft/的目录中下载nginx-.tar.gz 文件到本地/opt/soft/目录中。

从亚马逊云复制OpenVPN到本地目录

scp -i amazon.pem ubuntu@10.10.10.10:/usr/local/openvpn_as/etc/exe/openvpn-connect-2.1.3.110.dmg openvpn-connect-2.1.3.110.dmg

从10.10.10.10机器上下载openvpn安装文件到本地当前目录来。

从远程机器复制到本地

scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/

从10.10.10.10机器上的/opt/soft/中下载mongodb目录到本地的/opt/soft/目录来。

上传本地文件到远程机器指定目录

scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
# 指定端口 2222
scp -rp -P 2222 /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest

复制本地/opt/soft/目录下的文件nginx-0.5.38.tar.gz到远程机器10.10.10.10的opt/soft/scptest目录。

上传本地目录到远程机器指定目录

scp -r /opt/soft/mongodb root@10.10.10.10:/opt/soft/scptest

上传本地目录/opt/soft/mongodb到远程机器10.10.10.10上/opt/soft/scptest的目录中去。

ftp

用来设置文件系统相关功能

补充说明

ftp命令 用来设置文件系统相关功能。ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易。

语法

ftp(选项)(参数)

选项

-d:详细显示指令执行过程,便于排错或分析程序执行的情况;
-i:关闭互动模式,不询问任何问题;
-g:关闭本地主机文件名称支持特殊字符的扩充特性;
-n:不使用自动登录;
-v:显示指令执行过程。

参数

主机:指定要连接的FTP服务器的主机名或ip地址。

实例

ftp> ascii  # 设定以ASCII方式传送文件(缺省值) 
ftp> bell   # 每完成一次文件传送,报警提示. 
ftp> binary # 设定以二进制方式传送文件. 
ftp> bye    # 终止主机FTP进程,并退出FTP管理方式. 
ftp> case   # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. 
ftp> cd     # 同UNIX的CD命令. 
ftp> cdup   # 返回上一级目录. 
ftp> chmod  # 改变远端主机的文件权限. 
ftp> close  # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. 
ftp> delete # 删除远端主机中的文件. 
ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. 
ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中. 
ftp> help [command] # 输出命令的解释. 
ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. 
ftp> ls [remote-directory] [local-file] # 同DIR. 
ftp> macdef                 # 定义宏命令. 
ftp> mdelete [remote-files] # 删除一批文件. 
ftp> mget [remote-files]    # 从远端主机接收一批文件至本地主机. 
ftp> mkdir directory-name   # 在远端主机中建立目录. 
ftp> mput local-files # 将本地主机中一批文件传送至远端主机. 
ftp> open host [port] # 重新建立一个新的连接. 
ftp> prompt           # 交互提示模式. 
ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中. 
ftp> pwd  # 列出当前远端主机目录. 
ftp> quit # 同BYE. 
ftp> recv remote-file [local-file] # 同GET. 
ftp> rename [from] [to]     # 改变远端主机中的文件名. 
ftp> rmdir directory-name   # 删除远端主机中的目录. 
ftp> send local-file [remote-file] # 同PUT. 
ftp> status   # 显示当前FTP的状态. 
ftp> system   # 显示远端主机系统类型. 
ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机. 
ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
ftp> ! # 从 ftp 子系统退出到外壳。

FTP 匿名登录账号密码

账号:anonymous
密码: anonymous@

关闭FTP连接

bye
exit
quit

下载文件

ftp> get readme.txt # 下载 readme.txt 文件
ftp> mget *.txt     # 下载 

上传文件

ftp> put /path/readme.txt # 上传 readme.txt 文件
ftp> mput *.txt           # 可以上传多个文件

ftpcount

显示目前已FTP登入的用户人数

补充说明

显示目前已ftp登入的用户人数。执行这项指令可得知目前用FTP登入系统的人数以及FTP登入人数的上限。

语法:

ftpcount

ftpshut

在指定的时间关闭FTP服务器

补充说明

功能说明:在指定的时间关闭ftp服务器。本指令提供系统管理者在设置的时间关闭FTP服务器,且能在关闭之前发出警告信息通知用户。关闭时间若设置后为"none",则会马上关闭服务器。如果采 用"+30"的方式来设置表示服务器在30分钟之后关闭。依次类推,假设使用"1130"的格式则代表服务器会在每日的11时30分关闭,时间格式为24 小时制。FTP服务器关闭后,在/etc目录下会产生一个名称为shutmsg的文件,把它删除后即可再度启动FTP服务器的功能。

语法:

ftpshut [-d<分钟>][-l<分钟>][关闭时间]["警告信息"]

参数:

-d<分钟>   切断所有FTP连线时间。
-l<分钟>   停止接受FTP登入的时间。

ftpwho

显示当前每个ftp会话信息

补充说明

ftpwho命令 ftp服务器套件proftpd的工作指令,用于显示当前每个ftp会话信息。

语法

ftpwho(选项)

选项

-h:显示帮助信息;
-v:详细模式,输出更多信息。

ncftp

是增强的的FTP工具

补充说明

ncftp命令 是增强的的ftp工具,比传统的FTP指令更加强大。FTP让用户得以下载存放于服务器主机的文件,也能将文件上传到远端主机放置。ncftp是文字模式FTP程序的佼佼者,它具备多样特色,包括显示传输速率,下载进度,自动续传,标住书签,可通过防火墙和代理服务器等。

语法

ncftp(选项)(参数)

选项

-u:指定登录FTP服务器时使用的用户名;
-p:指定登录FTP服务器时使用的密码;
-P:如果FTP服务器没有使用默认的TCP协议的21端口,则使用此选项指定FTP服务器的端口号。
-m:在传之前尝试在目录位置创建目录(用于传目录的情况)
-R:递规传子目录

参数

FTP服务器:指定远程FTP服务器的ip地址或主机名。

安装

wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.3-src.tar.gz
tar zxvf ncftp-3.2.3-src.tar.gz
cd ncftp-3.2.3/
./configure --prefix=/usr/local/ncftp
make && make install

实例

将本地/etc/目录内的所有文件和目录,上传到FTP服务器的flv/games/目录内(如果不存在flv/games/目录则自动创建)。

/usr/local/ncftp/bin/ncftpput -u koumm -p koumm -P 21 -m -R 192.168.162.137  flv/games/ /etc/*

指令说明

ncftp的基本命令和普通ftp一样,可以输入help获得命令列表。对于所有的命令,都可以使用help <命令>的格式获得详细帮助。l开头的就是对本地执行的命令,其它的就是对登入的ftp服务目录的操作命令。

增加的本地文件系统的操作命令:

  • lls: 列出本地当前目录文件;
  • lmkdir : 本地建立目录;
  • lrename: 本地文件改名;
  • lpwd: 显示当前本地路 径;
  • lchmod: 改变本地文件权限;
  • lpage: 显示本地文件内容;
  • lrm: 删除本地文件;
  • lrmdir: 删除本地目录。

tftp

在本机和tftp服务器之间使用TFTP协议传输文件

补充说明

tftp命令 用在本机和tftp服务器之间使用TFTP协议传输文件。

TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的配置。

语法

tftp(选项)(参数)

选项

-c:指定与tftp服务器连接成功后,立即要执行的指令;
-m:指定文件传输模式。可以是ASCII或者Binary;
-v:显示指令详细执行过程;
-V:显示指令版本信息。

参数

主机:指定tftp要联机的tftp服务器的ip地址或主机名。

实例

1、安装tftp服务器

需要安装xinetd、tftp和tftp-server 3个软件

如果能上网,通过yum安装:

yum install xinetd
yum install tftp
yum install tftp-server

如果不能上网,可以直接安装提供的rpm包:

rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
rpm -ivh tftp-0.48-3.fc9.i386.rpm
rpm -ivh tftp-server-0.48-3.fc9.i386.rpm

2、配置tftp服务器

修改/etc/xinetd.d/tftp文件,将其中的disable=yes改为disable=no。主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:

service tftp
{
       socket_type           =dgram
       protocol              =udp
       wait                  =yes
       user                  =root
       server                =/usr/sbin/in.tftpd
       server_args           =-s  /home/mike/tftpboot -c
       disable               =no
       per_source            =11
       cps                   =100 2
       flags                 =IPv4
}

说明:修改项server_args= -s <path> -c,其中 处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。

3、启动tftp服务器并关闭防火墙

/etc/init.d/iptables stop        # 关闭防火墙
sudo /sbin/service xinetd start
或
service xinetd restart
/etc/init.d/xinetd start

看到启动[OK]就可以了

4、查看tftp服务是否开启

netstat -a | grep tftp

显示结果为udp 0 0 *:tftp *:*表明服务已经开启,就表明tftp配置成功了。

5、tftp使用

复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试。

tftp 192.168.1.2
tftp>get <download file> 

tftp>put <upload file>
tftp>q

6、tftp命令用法如下

tftp your-ip-address

进入TFTP操作:

  • connect:连接到远程tftp服务器
  • mode:文件传输模式
  • put:上传文件
  • get:下载文件
  • quit:退出
  • verbose:显示详细的处理信息
  • tarce:显示包路径
  • status:显示当前状态信息
  • binary:二进制传输模式
  • ascii:ascii 传送模式
  • rexmt:设置包传输的超时时间
  • timeout:设置重传的超时时间
  • help:帮助信息
  • ? :帮助信息

7、如果老是出现“AVC Denial, click icon to view”的错误,并不能传输文件,需要作如下修改

修改/etc/sysconfig/selinux,将SELINUX设定为disable,使用命令setenforce 0让selinux配置文件生效。

8、Busybox中tftp命令的用法

命令格式为:

tftp [option] ... host [port]

如果要下载或上传文件的话是一定要用这些option的。

-g 表示下载文件 (get)
-p 表示上传文件 (put)
-l 表示本地文件名 (local file)
-r 表示远程主机的文件名 (remote file)

例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令

tftp -g -r embedexpert 192.168.1.2

uucico

UUCP文件传输服务程序

补充说明

uucico命令 命令UUCP文件传输服务程序。 uucico是用来处理uucp或uux送到队列的文件传输工具。uucico有两种工作模式:主动模式和附属模式。当在主动模式下时,uucico会调用远端主机;在附属模式下时,uucico则接受远端主机的调用。

语法

uucico [-cCDefqvwz][-i<类型>][-I<文件>][-p<连接端口号码>][-][-rl][-s<主机>][-S<主机>][-u<用户>][-x<类型>][--help]

选项

-c或--quiet 当不执行任何工作时,不要更改记录文件的内容及更新目前的状态。
-C或--ifwork 当有工作要执行时,才调用-s或-S参数所指定主机。
-D或--nodetach 不要与控制终端机离线。
-e或--loop 在附属模式下执行,并且出现要求登入的提示画面。
-f或--force 当执行错误时,不等待任何时间即重新调用主机。
-i<类型>或--stdin<类型> 当使用到标准输入设备时,指定连接端口的类型。
-I<文件>--config<文件> 指定使用的配置文件。
-l或--prompt 出现要求登入的提示画面。
-p<连接端口号码>或-port<连接端口号码> 指定连接端口号码。
-q或--quiet 不要启动uuxqt服务程序。
-r0或--slave 以附属模式启动。
-s<主机>或--system<主机> 调用指定的主机。
-u<用户>或--login<用户> 指定登入的用户帐号,而不允许输入任意的登入帐号。
-v或--version 显示版本信息,并且结束程序。
-w或--wait 在主动模式下,当执行调用动作时,则出现要求登入的提示画面。
-x<类型>或-X<类型>或outgoing-debug<类型> 启动指定的排错模式。
-z或--try-next 当执行不成功时,尝试下一个选择而不结束程序。
--help 显示帮助,并且结束程序。

实例

使用主动模式启动uucico服务。在命令提示符下直接输入如下命令:

uucico-r1

提示:该命令一般没有输出。

uupick

命令处理传送进来的文件

补充说明

uupick命令 处理传送进来的文件。 当其他主机通过UUCP将文件传送进来时,可利用uupick指令取出这些文件。

语法

uupick [-v][-I<配置文件>][-s<主机>][-x<层级>][--help]

选项

-I<配置文件>或--config<配置文件> 指定配置文件。
-s<主机>或--system<主机> 处理由指定主机传送过来的文件。
-v或--version 显示版本信息。
--help 显示帮助。

例子

处理由主机localhost传送过来的文件。在命令行直接输入如下命令:

uupick-s localhost

该命令通常没有输出。

uuto

将文件传送到远端的UUCP主机

补充说明

uuto命令 为script文件,它实际上会执行uucp,用来将文件传送到远端UUCP主机,并在完成工作后,以邮件通知远端主机上的用户。

语法

uuto [文件][目的]

例子

将文件传送到远程 UUCP 主机 localhost 的 tmp 目录,在命令提示符中直接输入如下命令:

uuto./testfile localhost/tmp # 将文件传送到远程UUCP 主机localhost的tmp目录 

该命令通常没有输出。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值