次のスクリプトがあります:
#!/bin/sh
BACKUP=/respaldoBD
NOW=$(date +"%d_%m_%Y")
SMBCLIENT="$(which smbclient)"
DBS="zabbix"
for db in $DBS
do
FILE="mysql_$db.$NOW.gz"
echo $FILE
PARM="prompt; recurse; mput $FILE; exit;"
for f in $FILE
do
$SMBCLIENT //192.168.3.57/publica -A $BACKUP/.smbclient -c "\""$PARM"\$
done
done
スクリプトを実行すると、「Domain=[SEGCAT] OS=[Windows 8.1 Pro 9600] Server=[Windows 8.1 Pro 6.3]」のみが表示され、ファイルはコピーされません。
$smbclient 行をエコーし、それを直接コピーして貼り付けると、ファイルが完全にコピーされます。何が起こっているのかわかりません。意味がわかりません。
編集: 修正方法は、$SMBCLIENT 行を次のように置き換えることでした: $SMBCLIENT //192.168.3.57/publica -A $BACKUP/.smbclient -c "prompt; recurse; mput $FILE; exit;"