Решено: проблема при копирование файла на win сервер

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

storm2005
Сообщения: 136

Решено: проблема при копирование файла на win сервер

Сообщение storm2005 »

Собственно, копирование происходит без проблем.
smbclient при окончании операции выводит такое:

Код: Выделить всё

Domain=[SRV] OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]
putting file 1274940102.txt as \dir\1274940102.txt (8500.7 kb/s) (average 8500.7 kb/s)


Проблема в том, что это крон присылает мне на почтовый ящик (вся почта root идет мне).

Скрипт

Код: Выделить всё

#!/bin/sh

DIR_SOURCE="/var/mail/user/new"
DIR_TEMP="/var/mail/user/new/temp"

# Параметры копирования на win-сервер
SMBSERVER="//srv/mail -U user%passwd"
SMBCOMMAND="cd dir; lcd $DIR_TEMP; prompt; mput *.txt"


if [ -e $DIR_SOURCE/*.txt ]
then
    mv $DIR_SOURCE/*.txt $DIR_TEMP && \
    smbclient $SMBSERVER -c "$SMBCOMMAND" > /dev/null && \
    rm -f $DIR_TEMP/*.txt
fi


В кроне

Код: Выделить всё

*/5 7-19 * * *    root /usr/local/sbin/copy_winsrv.sh > /dev/null


Каким образом подавить вывод smbclient с тем, чтобы письма не сыпались на ящик?

И второй вопрос касательно работы команды test

Код: Выделить всё

#!/bin/sh

DIR_SOURCE="/var/mail/user/new/temp"
if [ -e $DIR_SOURCE/*.txt ]
then
    echo File exists
else
    echo File does NOT exist
fi

Когда файлов нет или файл один все отрабатывается как надо.

Когда в каталоге два файла

Код: Выделить всё

/usr/local/sbin/test_script.sh: line 4: [: /var/mail/user/new/temp/1273639253.txt: ожидается использование бинарного оператора
File does NOT exist


От трех и выше

Код: Выделить всё

/usr/local/sbin/test_script.sh: line 20: [: слишком много аргументов
File does NOT exist
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: Решено: проблема при копирование файла на win сервер

Сообщение /dev/random »

Замените
[ -e блабла* ]
на
ls блабла* | grep -q .
(не забудьте точку)
или же
ls блабла* >/dev/null 2>/dev/null

Суть в следующем. Если у вас есть файлы "блабла" и "блаблабла", то
[ -e блабла* ]
раскроется как
[ -e блабла блаблабла ]
В то время как "[ -e" ожидает одно имя файла, а не кучу.
Спасибо сказали:
storm2005
Сообщения: 136

Re: Решено: проблема при копирование файла на win сервер

Сообщение storm2005 »

/dev/random писал(а):
27.05.2010 15:17
ls блабла* | grep -q .


Код: Выделить всё

if ls $DIR_SOURCE/*.txt |grep -q .
then
    echo File exists
else
    echo File does NOT exist
fi


При отсутствии файлов в каталоге

Код: Выделить всё

ls: невозможно получить доступ к /var/mail/user/new/temp/*.txt: Нет такого файла или каталога
File does NOT exist


Второй вариант
ls блабла* >/dev/null 2>/dev/null

работает

Ничего не подскажите насчет назойливых писем от крона?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5404
ОС: Gentoo

Re: Решено: проблема при копирование файла на win сервер

Сообщение /dev/random »

storm2005 писал(а):
27.05.2010 15:59
Ничего не подскажите насчет назойливых писем от крона?

Попробуйте добавить 2>/dev/null в строку с smbclient
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: проблема при копирование файла на win сервер

Сообщение sash-kan »

storm2005 писал(а):
27.05.2010 15:59
Ничего не подскажите насчет назойливых писем от крона?

storm2005 писал(а):
27.05.2010 14:59
*/5 7-19 * * * root /usr/local/sbin/copy_winsrv.sh &> /dev/null
амперсанд.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: