На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
omeh2003
Сообщения: 43
ОС: Linux Ubuntu
Сообщение
omeh2003 » 09.06.2010 19:44
Хочу в скрипте который бекапом заведует сделать логирование, что бы в /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
Сообщение
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
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL
Сообщение
SLEDopit » 09.06.2010 20:06
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
Сообщение
omeh2003 » 09.06.2010 21:51
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
Сообщение
sash-kan » 09.06.2010 21:58
Код: Выделить всё
$ cat /etc/issue | tee file1 > file2
$ cat file1
Debian GNU/Linux 5.0 \n \l
$ cat file2
Debian GNU/Linux 5.0 \n \l
$