Не получается сделать вывод работы в файл.

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

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

Аватара пользователя
omeh2003
Сообщения: 43
ОС: Linux Ubuntu

Не получается сделать вывод работы в файл.

Сообщение omeh2003 »

Хочу в скрипте который бекапом заведует сделать логирование, что бы в /var/log не копаться.
Настроил вывод в файл, а оно все равно на экран пишет. Не могу понять почему.


Скрипт:
#!/bin/bash
# restract=
TIMES=`date +\%d-\%m-\%Y_\%H:\%M:\%S`
DATES=`date +\%d-\%m-\%Y`
TIMEL=`date +\%H:\%M`
CDIR=`pwd`
LOGFILE=$DATES"_log".txt
echo "Вы уверенны что хотите копировать систему fsarchiv (yes/noy)"
echo "тимес TIMES" $TIMES
echo "дате DATES" $DATES
echo "тимел TIMEL" $TIMEL
echo "базовая директория CDIR" $CDIR
read answ
test "yes" != $answ && exit 1
echo "ответ yes"
#
exec 6>&1 # вывода в файл
exec > $LOGFILE # файл в который делать вывод

mkdir $CDIR"/"$DATES
cd $DATES
fsarchiver -j3 -o savefs $DATES"_sistemsdisk".fsa /dev/sdb1 /dev/sdb3 /dev/sdb6 /dev/sdb7
fsarchiver -j3 -o savefs -s 1000 $DATES"_home".fsa /dev/sdb5
fsarchiver -j3 -o savedir $DATES"_log".fsa /var/log
sync
exec 1>&6 6>&- # восстанавливаем стандартный вывод.
exit 0

Спасибо сказали:
reji
Сообщения: 81

Re: Не получается сделать вывод работы в файл.

Сообщение reji »

omeh2003 писал(а):
09.06.2010 19:44
exec 6>&1 # вывода в файл
exec > $LOGFILE # файл в который делать вывод

Просто, exec > "$LOGFILE"
Или exec > "$LOGFILE" 2>&1, поток ошибок тоже перенаправлен в файл.

omeh2003 писал(а):
09.06.2010 19:44
exec 1>&6 6>&- # восстанавливаем стандартный вывод.

Этого, имхо, не нужно делать. Все эти перенаправления действуют на этот скрипт и запущенные из него программы.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Не получается сделать вывод работы в файл.

Сообщение SLEDopit »

man tee
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
omeh2003
Сообщения: 43
ОС: Linux Ubuntu

Re: Не получается сделать вывод работы в файл.

Сообщение omeh2003 »

reji писал(а):
09.06.2010 20:03
omeh2003 писал(а):
09.06.2010 19:44
exec 6>&1 # вывода в файл
exec > $LOGFILE # файл в который делать вывод

Просто, exec > "$LOGFILE"
Или exec > "$LOGFILE" 2>&1, поток ошибок тоже перенаправлен в файл.

omeh2003 писал(а):
09.06.2010 19:44
exec 1>&6 6>&- # восстанавливаем стандартный вывод.

Этого, имхо, не нужно делать. Все эти перенаправления действуют на этот скрипт и запущенные из него программы.


Спасибо! Заработало как надо :)

SLEDopit, tee только самим команды записывает? А их вывод получается нет? У меня он во всяком случае записал только то что вводилось в консоле и то что через echo выводится. А то что программы пишут на экран оно не записало. Не удобно. Лучше вывод весь в файл записывать.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Не получается сделать вывод работы в файл.

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

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

$ cat /etc/issue | tee file1 > file2
$ cat file1
Debian GNU/Linux 5.0 \n \l

$ cat file2
Debian GNU/Linux 5.0 \n \l

$
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: