if [ -e /home/file ]
then echo OK
else echo NO_OK
fi
Нужно чтобы он его выцеплял из массива файлов, а не просто по имени...[/quote]
Товарищ, команда для проверки существования файлов, как и команды массивов находятся на первой странице поиска в Google.
Вы бы сначала почитать про bash скрипты, их составления, основные команды - у вас бы многое уложилось в голове. А таким подходом вы и время людей тратите и эффективности ноль, ибо не понимаете сути.
Суть я понимаю, смысла читать справочники не вижу, так как надо понять не структуру скрипта, мне непонятно как выцепить правильный файл из большого количества файлов, и из имени правильного файла дату и сравнить её с текущей...
проверять наличие файла вида xxxxx28-09-2011_00-22.xxx существует он или нет.
а так?
[console]find путь_где_искать -name '*28-09-2011_00-22.*' -exec cat {} \;[/console]
команда выведет на экран содержимое файла, если он есть, вместо cat можно поставить любую другую команду, {} это имя найденного файла командой find
не "неизящно", а просто жесть какая-то... для одного файла я ещё понимаю, как оно работает/что делает... а если файлов несколько?
в любом случае(набросал на коленке):
[console]
DATE="$(date +%m-%d)"
FILE_LIST="$(ls /home/000/*$DATE*)"
CRYT_SIZE=1073741824
echo $FILE_LIST | while read FILE;do
SIZE=$(du -b --apparent-size $FILE | cut -f 1)
if (("$SIZE" > "$CRYT_SIZE")); then
echo "OK $FILE $SIZE"
else
echo "CRITICAL! $FILE $SIZE"
exit $STATE_CRITICAL
fi
done
[/console]