悠悠楠杉
CentOS/Linux常用Fetch命令全解析:从基础到高阶应用
一、为什么需要掌握Fetch类命令?
在服务器运维(尤其无GUI环境的CentOS)中,90%的软件安装和数据处理都始于文件获取。相比Windows的图形化下载,Linux命令行工具具有以下优势:
- 断点续传:大文件下载不再因网络中断前功尽弃
- 后台执行:无需保持SSH会话持续连接
- 批量操作:通过脚本实现自动化下载任务
- 精准控制:限速、重试、头部修改等精细化操作
二、核心下载工具详解
2.1 wget - HTTP/FTP下载利器
bash
基础下载(自动显示进度条)
wget https://example.com/large_file.zip
断点续传+后台下载(适合大文件)
wget -c -b https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.12.tar.xz
限速500KB/s(避免占用全部带宽)
wget --limit-rate=500k https://mirrors.aliyun.com/centos/8/isos/x8664/CentOS-8.5.2111-x8664-dvd1.iso
递归下载整个网站(谨慎使用!)
wget -r -np -k https://docs.example.com/manual/
参数解析:
- -c
:继续中断的下载
- -b
:转入后台执行
- --header
:自定义请求头(如模拟浏览器)
- -O
:指定保存文件名
2.2 curl - 全能数据传输工具
bash
获取HTTP响应头(调试用)
curl -I https://www.centos.org
提交POST请求(API调用)
curl -X POST -d 'user=admin&pass=123' https://api.example.com/login
下载文件并显示进度条
curl -# -o centos.iso https://mirror.rackspace.com/centos/7/isos/x8664/CentOS-7-x8664-Minimal-2009.iso
通过代理服务器下载
curl -x socks5://192.168.1.100:1080 http://external.site/file.txt
高阶技巧:
- 使用-K
读取配置文件管理复杂请求
- --compressed
启用压缩传输节省带宽
- 结合jq
处理JSON格式API响应
三、服务器间文件传输
3.1 scp - 加密的跨服务器拷贝
bash
本地→远程(上传)
scp -P 2222 ./backup.tar.gz root@192.168.1.100:/opt/backups/
远程→本地(下载)
scp -i ~/.ssh/private_key.pem user@cloud-server:/var/log/nginx/access.log ./logs/
递归传输目录(保留权限)
scp -rpv /data/images admin@nas:/storage/images
注意点:
- 默认使用SSH端口22,修改端口需用-P
参数
- 大文件传输建议配合tmux
或screen
使用
3.2 rsync - 增量同步专家
bash
本地目录同步(显示进度)
rsync -avh --progress /src/ /dest/
远程同步(SSH加密)
rsync -e "ssh -p 2022" -az --delete /opt/backups/ backup-server:/backups/
排除特定文件类型
rsync --exclude="*.tmp" --exclude="cache/" -a /var/www/ remote:/webroot/
关键参数:
- --partial
:保留部分传输的文件
- --bwlimit
:限制带宽(单位KB/s)
- --checksum
:基于文件校验而非修改时间
四、实战问题排查
4.1 证书错误解决方案
bash
跳过SSL验证(测试环境用)
wget --no-check-certificate https://internal.site/package.rpm
指定CA证书路径
curl --cacert /etc/ssl/certs/ca-bundle.crt https://secure.site.com
4.2 大文件传输优化
bash
使用aria2多线程下载(需额外安装)
aria2c -x16 -s16 https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso
网络测速后选择最优镜像
curl -s http://speedtest.centos.org | grep -A5 "Recommended"
五、安全注意事项
避免在命令行直接暴露密码:bash
错误示范(会记录在history中)
wget --user=admin --password=123456 ftp://internal.site/files/
正确做法(使用.netrc文件)
echo "machine internal.site login admin password 123456" > ~/.netrc
chmod 600 ~/.netrc定期更新CA证书包:
bash yum update ca-certificates -y
总结:掌握这些fetch命令的组合使用,能显著提升Linux服务器管理效率。建议收藏常用命令到~/.bashrc
作为别名,例如:
bash
alias wget='wget -c --progress=bar:force'
alias rsync='rsync -azvh --progress'