В Чтв, 24/01/2008 в 13:31 +0300, Andrey Nikitin пишет: > В сообщении от 24 января 2008 13:17 Покотиленко Костик написал(a): > > В Чтв, 24/01/2008 в 01:04 +0300, Artem Chuprina пишет: > > > Покотиленко Костик -> [email protected] @ Wed, 23 Jan 2008 > > > 21:40:56 +0200: > > > > > > >> ПК> # check for diskspace shortage > > > >> ПК> datadir=`mysqld_get_param datadir` > > > >> ПК> if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 > > > | awk > > > >> ПК> '{ exit ($4>4096) }'; then > > > >> ПК> log_failure_msg "$0: ERROR: The partition with $datadir is > > > too > > > >> ПК> full!" > > > >> ПК> echo "ERROR: The partition with $datadir is > > > too > > > >> ПК> full!" | $ERR_LOGGER > > > >> ПК> # exit 1 > > > >> ПК> fi > > > >> > > > >> ПК> ======================= > > > >> ПК> # /usr/sbin/mysqld --verbose --help | grep datadir > > > >> ПК> -h, --datadir=name Path to the database root. > > > >> ПК> datadir /var/lib/mysql/ > > > >> ПК> # LC_ALL=C BLOCKSIZE= df --portability /var > > > >> ПК> Filesystem 1024-blocks Used Available Capacity > > > Mounted on > > > >> ПК> /dev/hda7 9614116 2929680 6196064 33% /var > > > >> ПК> ======================= > > > >> > > > >> ПК> Есть идеи? > > > >> > > > >> ПК> Что значит это условие в /etc/init.d/mysql: > > > >> > > > >> ПК> if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | > > > awk > > > >> ПК> '{ exit ($4>4096) }'; then > > > >> > > > >> ПК> ?? > > > >> > > > >> Что тот, кто его написал - кретин. > > > >> > > > >> Замени в нем > на <. А что значит - ну, man awk, да... > > > > > > ПК> Да... но есть 2 НО: > > > > > > ПК> 1. в консоли данное условие возвращает FALSE (то есть не > > > срабатывает), > > > ПК> странно? > > > > > > А, ну да, оно ж используется как обратное... > > > > > > ПК> 2. на другой машине всё точно так же и работает. И на этой работало > > > ПК> до перезагрузки :/ > > > > > > ПК> Пролейте света. > > > > > > Разбираться надоть... Попробуй повыводить в лог промежуточные > > > результаты (вывод df, результат применения к нему tail, результат той же > > > команды с заменой exit ($4>4096) на print $4). Не вручную, а из этого > > > скрипта. При загрузке. > > > > Мистика, ночью сервак перезагружался, и теперь проблема пропала. А я > > хотел было потестить, но не вышло... > Никакой мистики, размер $4 изменился. > След. раз если возникнет, запомните число $4 и проверьте > echo 'размер' | awk '{ printf $0" > 4096 == "; exit ($0>4096) }' && echo > 'Yes' || echo 'No'
Размер: 6196064, и тест - читай выше. В командной строчке работало, в скрипте нет. -- Покотиленко Костик <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

