CentOS 7 如何从 Samba 服务器下载文件?
CentOS7 命令行连接Samba并下载文件两种常用方法
一、安装依赖工具
bash
yum install -y samba-client cifs-utils
方式1:smbclient 临时登录下载(无需挂载,单次操作)
- 查看Samba共享列表
bash
格式:smbclient -L //Samba服务器IP -U 共享用户名
smbclient -L //192.168.1.100 -U username
回车后输入密码即可列出所有共享文件夹。
- 进入Samba交互式终端
bash
smbclient //192.168.1.100/share_name -U username
- //IP/share_name :服务器IP + 共享目录名
- 输入密码进入 smb:\> 交互界面
常用下载命令
bash
下载单个文件到当前Linux目录
get 远端文件名 本地保存文件名
递归下载整个文件夹(必须加-r)
mget -r 远端文件夹名
查看远端目录
ls
切换远端目录
cd 文件夹名
退出
exit
示例:
bash
smb: \> get test.tar.gz /root/test.tar.gz
方式2:mount 永久挂载Samba共享(推荐,像本地文件夹一样拷贝)
- 创建本地挂载目录
bash
mkdir -p /mnt/samba
- 执行挂载
bash
mount -t cifs //192.168.1.100/share_name /mnt/samba -o username=用户名,password=密码,vers=2.0
- vers=2.0 :兼容CentOS7与多数Windows/Samba服务端协议,连接报错就换 vers=3.0
- 直接cp下载文件
挂载后 /mnt/samba 就是Samba共享盘,直接复制:
bash
复制单个文件
cp /mnt/samba/xxx.zip /home/
复制整个文件夹
cp -r /mnt/samba/文件夹 /root/
- 卸载共享(用完解除挂载)
bash
umount /mnt/samba
开机自动挂载(可选)
编辑 /etc/fstab 末尾添加一行:
plaintext
//192.168.1.100/share_name /mnt/samba cifs username=user,password=pass,vers=2.0 0 0
常见报错排查
1. 协议不匹配:挂载参数添加 vers=2.0 或 vers=3.0
2. 权限拒绝:确认Samba账号密码正确、共享目录开启可读权限
3. 无法解析主机:直接用IP地址,不要用计算机名
4. 防火墙拦截:服务器端放行139、445端口
需要我根据你Samba服务器IP、共享名、账号密码给你生成一条可直接复制执行的完整命令吗?