欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

smb 从linux 上复制文件到windows 上 test.sh 自己亲自做的有大用 有大大用 有大大大用 有大大大大用

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"    
PASSWORD="bbb@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" -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 的错

username=aaa    
password=bbb@ddd    





普通分类: