Linux 温习(七): 文件传输
- 陈大剩
- 2023-02-04 11:44:54
- 1091
wget 下载文件
wget可以使我们直接从终端控制台下载文件,只需要给出文件的 HTTP 或 FTP 地址。
安装
sudo yum install wget
命令格式
wget [参数] [URL地址]
下载文件
wget http://c69p.com
如果是由于网络的原因下载失败,wget 会不断地尝试,直到整个文件下载完毕。
继续中断的下载
要继续一个中断的下载,只要在相同的下载命令中加入 -c
参数 wget -c xxx
,c 是英语 continue 的缩写,表示“继续”。
wget 的一个优点是会显示下载的进度
网间拷贝 SCP
cp 是英语 copy 的缩写,表示”拷贝”,scp 是 Secure CoPy 的缩写,表示“安全拷贝”,scp 可以使我们通过网络,把文件从一台电脑拷贝到另一台,scp 是基于 SSH ( Secure SHell )的原理来运作的,SSH 会在两台通过网络连接的电脑之间创建一条安全通信的管道,scp就利用这条管道安全地拷贝文件。
命令格式
scp source_file destination_file
- source_file 表示源文件,就是被拷贝的文
- destination_file 表示目标文件,就是拷贝产生的文件
- 这两个文件都可以用如下方式来表示
user@ip:file_name
- user 是登录名,ip 是域名(google.com)或 ip 地址(216.58.206.238)
file_name是文件路径。不要忘了中间的 @ 号和冒号 (∶)
SCP 修改端口
scp命令的默认端口号是22,和SSH一样,可以修改端口号,用 -Р
参数(p 是 port 的缩写,表示“端口”)。
scp -P 7821 root@192.168.1.5:/root/file.txt .
例子
从自己电脑拷贝文件到另一台电脑
# 表示把我的电脑中当前文件夹下的 file.txt 文件拷贝到远程电脑
scp file.txt root@192.168.1.5:/root
从另一台电脑拷贝文件到自己电脑
# 把 file.txt 拷贝到我的电脑中当前文件夹下,并改名
scp root@192.168.1.5:/root/file.txt file_change_name.txt
ftp & sftp 传输文件
FTP是 File Transfer Protocol 的缩写,表示“文件传输协议”,FTP协议已经有些年纪了,1985年诞生,FTP 现在仍然是传输文件的最常用协议。
使用FTP主要分为两种情况:
- 从公共的 FTP 服务器下载文件
- 从私有的 FTP 服务器上传或下载文件
安装 ftp命令
sudo yum install ftp
连接到FTP服务器
ftp -p ftp.fr.debian.org
-p
参数,p 是 passive 的缩写,表示“被动的” passive 是 FTP 的一种模式
对于公共的FTP服务器,用户名( Name )一般都填写 anonymous
在 FTP 服务器中操作
- ls :列出当前目录的文件
- pwd :显示当前目录的路径
- cd∶转换目录
用 FTP 进行文件传输
如果你想上传及下载文件,需要知道两个命令
- put :用于上传文件。put 是英语“放入”的意思
- get :用于下载文件。get 是英语“获得”的意思
其他的 FTP 命令
用 man ftp
来查看ftp的命令手册,比如,删除文件不是用 rm
命令,而是 delete
命令。
与 FTP 服务器断开连接
要从 FTP 服务器断开连接,你可以用 Ctrl +D
组合键,也可以用 bye
, exit
或 quit
命令,效果是一样的
sftp:安全加密的 ftp
ftp 命令虽然方便,但是有一个致命缺点:不安全,数据不是加密传输的。sftp 是 Secure FTP 的缩写。表示“安全的FTP” sftp 也是基于 SSH 的,所以登录需要用户名和密码。
用法
sftp user@ip
sftp 的默认端口号是 22,和 SSH 一样,可以修改端口号,用 -oPort
参数
sftp -oPort 3592 chendasheng@192.168.1.67
rsync:同步备份
rsync 是 remote synchronize 的缩写,remote 表示“远程”,synchronize 表示“同步”因此 rsync 命令主要用于“远程同步文件”。rsync 是最常用于“增量备份”的命令了,rsync 就好像更智能的scp命令
。
指在一次全备份或上一次增量备份后。以后每次的备份只需备份与前一次相比增加或者被修改的文件
安装
sudo yum install rsync
rsync 备份到同一台电脑的其他目录
# 将lmages目录下的所有文件备份到backups目录下
rsync -arv Images/ backups/
-arv 参数
-a
:保留文件的所有信息,包括权限,修改日期,等等。a 是 archive 的缩写,是“归档”的意思-r
:递归调用。表示子目录的所有文件也都包括,r 是 reqursive 的缩写,是“递归的”的意思-v
:冗余模式,输入详细操作信息,v 是 verbose 的缩写,是“冗余的”的意思。
删除文件
默认地,rsync 在同步时并不会删除目标目录的文件,例如,你的源目录(被同步目录)中删除了一个文件,但是用 rsync 同步时,它并不会删除同步目录中的相同文件。
如果要使rsync 也同步删除操作。那么可以这么做
rsync -arv --delete Images/ backups/
rsync 备份到另一台电脑的目录
rsync -arv --delete Images/ chendasheng@89.231.45.67:backups/
更多参数,可以用
man rsync
学习
强大的 rsync
你可以自己配置 rsync,使得它从指定目录(可以是多个目录)备份到指定的 ip 地址的且录下,而且可以指定哪些类型文件是要备份的,哪些类型不要备份,然后把这一长串命令统一用 Shell 脚本来写成一个文件(例如取名叫 backup ),使之可执行(用 chmod +x 命令),再把这个文件的路径添加到 PATH 环境变量中
总结
- wget 命令可以下载文件
- 为了将文件从一台电脑拷贝到另一台电脑,可以使用scp命令,它使用 SSH 协议,因此传输是加密的,非常安全
- 可以用 ftp 命令来连接到一个 FTP 服务器,上传及下载文件。
- sftp 和 ftp 命令类似,但是它用了 SSH 协议,所以传输的信息是加密的
- rsync 命令可以同步同一台电脑或两台不同电脑上的两个文件(夹)的内容,rsync 命令来备份文件特别方便。