Я выполняю следующий файл с > 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?
Дескриптор файла 1 является stdout, 2 stderr. Это относится и к Linux и к Windows. С"> файл журнала", Вы перенаправляете stdout в файл "файл журнала", но что Вы на самом деле хотите, должен перенаправить stderr. Это может быть сделано с "2> именем файла" или "2> &1" (в сочетании с"> файл журнала") и в Windows и в Linux, но отмечать, что порядок мог бы быть значительным, таким образом, это должна быть "команда> файл журнала 2> &1" а не наоборот.
Можно перенаправить стандартную погрешность в файл как это:
mycommand 2> error.log
и можно использовать следующий синтаксис для перенаправления и стандартного вывода и стандартной погрешности в файл:
mycommand &> file
или
mycommand > file-name 2>&1