[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: /etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full!



В сообщении от 24 января 2008 13:17 Покотиленко Костик написал(a):
> В Чтв, 24/01/2008 в 01:04 +0300, Artem Chuprina пишет:
> > Покотиленко Костик -> debian-russian@lists.debian.org  @ 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'

-- 
С Уважением,
       Андрей Никитин


Reply to: