Как в bash узнать размер файла
Очень часто приходится сравнивать размеры файлов, будь то бэкапы, документы или любые другие файлы. Мне например очень пригодилось при работе с бэкапами, так как иногда архиватор создает бэкапы с нулевым размером (32 байта). Чтобы избежать таких «косяков» в своих скриптах я использую команду:
filesize=$(stat -c%s "$file");
В ответ вы получите размер файла в байтах. Это очень удобно при работе с маленькими файлами, либо когда разница в файле очень мала. Дальше используйте по-своему усмотрению. например, так:
#если бэкап меньше 1 мбайта, то подозрительна чёта 8(
filesize=$(stat -c%s "$file");
if [ "$filesize" -lt "1000000" ];
then
echo "WARNING! File size of $file is small - $filesize byte" >> $backupdir/$logfile;
fi
Затем весь лог-файл отправляется на почту. Об этом написано в посте Как отправить содержимое файла на почту в bash
Отблагдарить автора статьи также можно переводом, +100 вам в карму!
Один Ответ
#!/bin/sh
while [ $(ls -l /tmp/gresp | awk ‘{ print $5 }’) -lt 20 ]
do
echo > /dev/null
done
жду пока /temp/gresp не распухнет до 20 байт