У меня есть следующий скрипт:
#!/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
Когда я выполняю скрипт, я получаю только «Домен = [SEGCAT] OS = [Windows 8.1 Pro 9600] Сервер = [Windows 8.1 Pro 6.3]», и файл не копируется.
Если я повторю строку $ smbclient, скопирую и вставлю ее напрямую, он отлично скопирует файл. Я не знаю, что происходит, это не имеет смысла для меня.
РЕДАКТИРОВАТЬ: исправление состояло в том, чтобы заменить строку $ SMBCLIENT на: $ SMBCLIENT //192.168.3.57/publica -A $ BACKUP /.smbclient -c "приглашение; recurse; mput $ FILE; выход;"