[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/01/2008 в 13:31 +0300, Andrey Nikitin пишет:
> В сообщении от 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'

Размер: 6196064, и тест - читай выше. В командной строчке работало, в
скрипте нет.

-- 
Покотиленко Костик <casper@meteor.dp.ua>


Reply to: