pfsense 是 192.168.2.21
公共盘 192.168.7.20
这个是列出共享的文件夹
/usr/local/bin/smbclient -L //192.168.7.20/ddd$ -U aaa%'bbb@ddd'
这个是复制文件到ddd文件夹
smbclient //192.168.7.20/ddd$ -U aaa%'bbb@ddd' -c 'put /tmp/testfile.txt testfile.txt'
/usr/local/bin/smbclient //192.168.7.20/ddd$ -U aaa%'bbb@ddd' -c "put /tmp/share720/111.txt Squidlog-111.txt"
/usr/local/bin/smbclient //192.168.7.20/ddd$ -A /root/authfile -c "put /tmp/share720/111.txt Squidlog-111.txt" #当然需要authfile文件,见本网页下面
/usr/local/bin/smbclient //192.168.7.20/ddd$ -U aaa%'bbb@ddd' -c "put /tmp/share720/111.txt Squidlog-111.txt"
/usr/local/bin/smbclient //192.168.7.20/ddd$ -U aaa%'bbb@ddd' -c "put /tmp/share720/111.txt Squidlog-111.txt"
test1.sh 下面 如果 SMB_SHARE="//192.168.7.20/ddd$" 没有美元符,可能会报tree connect failed: NT_STATUS_BAD_NETWORK_NAME 错
#!/bin/sh
# 设置变量
SMB_SHARE="//192.168.7.20/ddd$"
USER="aaa"
CURRENT_DATE=$(date +%Y-%m-%d) # 获取当前日期
SQUID_TAR_FILE="/tmp/share720/111.txt" # 本地文件路径,请替换为实际文件名
# 检查本地文件是否存在
if [ ! -f "$SQUID_TAR_FILE" ]; then
echo "错误: 文件 $SQUID_TAR_FILE 不存在."
exit 1
fi
# 使用 smbclient 上传文件
/usr/local/bin/smbclient "$SMB_SHARE" -U "$USER%$PASSWORD" -c "put \"$SQUID_TAR_FILE\" \"Squidlog-${CURRENT_DATE}.txt\""
# 检查上传是否成功
if [ $? -eq 0 ]; then
echo "文件上传成功: Squidlog-${CURRENT_DATE}.tar"
else
echo "文件上传失败."
exit 1
fi
test2.sh 与 /root/authfile 结合起来使用
test2.sh
#!/bin/sh
# 设置变量
SMB_SHARE="//192.168.7.20/ddd$"
CURRENT_DATE=$(date +%Y-%m-%d) # 获取当前日期
SQUID_TAR_FILE="/tmp/share720/111.txt" # 本地文件路径,请替换为实际文件名
# 检查本地文件是否存在
if [ ! -f "$SQUID_TAR_FILE" ]; then
echo "错误: 文件 $SQUID_TAR_FILE 不存在."
exit 1
fi
# 使用 smbclient 上传文件
/usr/local/bin/smbclient "$SMB_SHARE" -A /root/authfile -c "put \"$SQUID_TAR_FILE\" \"Squidlog-${CURRENT_DATE}.txt\""
# 检查上传是否成功
if [ $? -eq 0 ]; then
echo "文件上传成功: Squidlog-${CURRENT_DATE}.tar"
else
echo "文件上传失败."
exit 1
fi
/root/authfile 如果文件不是这样的格式,可能会报 session setup failed: NT_STATUS_ACCESS_DENIE 的错