Редиректоры Linux, не регистрирующие ошибки. Linux имеет эквивалент Windows 2> &1?

Я выполняю следующий файл с > log.log редиректор, и это не фиксирует ошибки.

#!/bin/bash

echo ************************BEGIN LOG******************************
date +"%m/%d/%Y %H:%M:%S $HOSTNAME"
cp -f /scripts/original/clamscans.log /scripts
find /public/public/clamscans/. -exec grep -n FOUND /dev/null {} \;>>clamscans.log
mail somedude@someplace.com < clamscans.log
tar cvf dailyresults.tar /public/public/clamscans/*.txt
gzip -f dailyresults.tar
mv -f /public/public/clamscans/*.txt /scripts/lastnite
echo end log entry

Продолжающие ошибки показывают, когда я работаю из файла из окна терминала, но они не записаны в log.log:

tar: /public/public/clamscans/*.txt: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors
mv: cannot stat `/public/public/clamscans/*.txt': No such file or directory

Что я делаю неправильно? Я знаю с Windows, который можно добавить 2>&1 собрать ошибочные данные. Есть ли такая вещь для Linux?

0
задан 13.08.2013, 22:41

2 ответа

Дескриптор файла 1 является stdout, 2 stderr. Это относится и к Linux и к Windows. С"> файл журнала", Вы перенаправляете stdout в файл "файл журнала", но что Вы на самом деле хотите, должен перенаправить stderr. Это может быть сделано с "2> именем файла" или "2> &1" (в сочетании с"> файл журнала") и в Windows и в Linux, но отмечать, что порядок мог бы быть значительным, таким образом, это должна быть "команда> файл журнала 2> &1" а не наоборот.

3
ответ дан 24.11.2019, 03:38

Можно перенаправить стандартную погрешность в файл как это:

mycommand 2> error.log

и можно использовать следующий синтаксис для перенаправления и стандартного вывода и стандартной погрешности в файл:

mycommand &> file

или

mycommand > file-name 2>&1
1
ответ дан 24.11.2019, 03:38

Теги

Похожие вопросы