无意间发现可以使用 smbclient 命令自动把文件上传到 smb 服务器,出于时间关系,下面只给出简短的脚本演示
#!/bin/bash
local_upload_dir="/home/david/test_dir"
smbclient //192.168.0.888/server/ -u Anonymous -d 1 << _EOF_
prompt off
cd david/
mkdir test_dir
cd test_dir
lcd ${local_upload_dir}
mput *
q
_EOF_
echo "Done!"
解释一下传给 smbclient 的命令
# 上传文件时,不用提示用户
prompt off
# 进入服务器david目录
cd david/
# 在服务器上创建test_dir目录
mkdir test_dir
# 进入服务器test_dir目录
cd test_dir
# 进入本地目录
lcd ${local_upload_dir}
# 把本地目录下的所有内容全部上传到服务器
mput *
# 退出
q
执行这个脚本的时候,会输出一些无关的信息,如下
WARNING: The "syslog" option is deprecated
Try "help" to get a list of possible commands
需要对 here documents 语法使用过滤操作。
由于时间关系,我暂时记录下这些内容,后面再把这个脚本进行优化。