Uruchomiłem następujący plik z > log.logreadresatorem i nie przechwytuje on błędów.
#!/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
Podczas uruchamiania z pliku z okna terminala pojawiają się następujące błędy, ale nie są one zapisywane w 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
Co ja robię źle? Wiem, że w systemie Windows możesz dodać, 2>&1aby przechwytywać dane błędów. Czy jest coś takiego dla Linuksa?
2>&1pracy z oknami, więc pomyślałem, że na początku źle przeczytałem pytanie. Morał tej historii: czasami odpowiednik w innym systemie operacyjnym jest identyczny.
command &> filenameprzekierować zarówno stdout, jak i stderr do pliku o nazwiefilename.