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

2008-01-23 Thread Покотиленко Костик
После перезагрузки сервера появилась вот такая беда:

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

Пока решил закоментировав "exit 1", так:

  # 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

??

-- 
Покотиленко Костик <[EMAIL PROTECTED]>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-23 Thread Artem Chuprina
Покотиленко Костик -> debian-russian@lists.debian.org  @ Wed, 23 Jan 2008 
19:42:28 +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, да...

-- 
Artem Chuprina
RFC2822:  Jabber: [EMAIL PROTECTED]

Нажатие на кнопку "Запомнить пароль" не поможет ВАМ запомнить пароль.
-- http://bash.org.ru/quote.php?num=101483


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-23 Thread Покотиленко Костик

В Wed, 23 Jan 2008 20:59:38 +0300, Artem Chuprina пишет:

Покотиленко Костик -> debian-russian@lists.debian.org  @ Wed, 23 Jan  
 2008 19:42:28 +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 (то есть не срабатывает),  
странно?


=
# if LC_ALL=C BLOCKSIZE= df --portability /var/. | tail -n 1 | awk '{  
exit ($4>4096) }'; then echo Bad; else echo Good; fi


Good

#
=

Чем такое обьяснить?

2. на другой машине всё точно так же и работает. И на этой работало до  
перезагрузки :/


Пролейте света.



This message was sent using IMP, the Internet Messaging Program.




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

2008-01-23 Thread Mikolaj Golub

On Wed, 23 Jan 2008 20:59:38 +0300 Artem Chuprina wrote:

 AC> Покотиленко Костик -> debian-russian@lists.debian.org  @ Wed, 23 Jan 2008 
19:42:28 +0200:

 AC>  ПК> Что значит это условие в /etc/init.d/mysql:

 AC>  ПК> if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk
 AC>  ПК> '{ exit ($4>4096) }'; then

 AC>  ПК> ??

 AC> Что тот, кто его написал - кретин.

 AC> Замени в нем > на <.  А что значит - ну, man awk, да...

Да нет, вроде все правильно.

куча места, $4 большое => ($4>4096) возвращает true (1) => awk возвращает 1
=> if должно не сработать (идет по ветке else).

Я бы для начала попробовал вставить в сам скрипт где-то до ифа:

LC_ALL=C BLOCKSIZE= df --portability $datadir/.

и поглядеть то ли он там возвращает, что предполагал автор.

-- 
Mikolaj Golub


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-23 Thread 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).  Не вручную, а из этого
скрипта.  При загрузке.

-- 
Artem Chuprina
RFC2822:  Jabber: [EMAIL PROTECTED]

/dev/null-транспортировка


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-24 Thread Andrey Nikitin
В сообщении от 23 января 2008 20:59 Artem Chuprina написал(a):
>  ПК> if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ 
> exit ($4>4096) }'; then

> Что тот, кто его написал - кретин.

Вряд ли. Это скорее баг awk.
Взяв такой кусок для своего пакета тоже нарвался на такую неприятность (etch, 
на i386).
Не помню точно с какого числа перестаёт правильно отрабатывать условие в awk,
но такая граница есть.

Вышел из положения так:
1) df перевёл на мегабайты
2) на всякий случ. сравниваю test-ом

min_space_mb()
{
   local dir="$1"
   local sz="$2"
   local free_sz="$(LC_ALL=C BLOCKSIZE=  df -m --portability ${dir}/. | tail -n 
1 | awk '{ print $4 }')"
   test ${free_sz} -lt ${sz}
   return $?
}

баг не стал репортить, так как на 100% не был уверен чей он (mysql или awk)

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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-24 Thread Покотиленко Костик
В Чтв, 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).  Не вручную, а из этого
> скрипта.  При загрузке.

Мистика, ночью сервак перезагружался, и теперь проблема пропала. А я
хотел было потестить, но не вышло...

-- 
Покотиленко Костик <[EMAIL PROTECTED]>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-24 Thread 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'

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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-24 Thread Покотиленко Костик
В Чтв, 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, и тест - читай выше. В командной строчке работало, в
скрипте нет.

-- 
Покотиленко Костик <[EMAIL PROTECTED]>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-24 Thread Andrey Nikitin
В сообщении от 24 января 2008 14:08 Покотиленко Костик написал(a):
> > Никакой мистики, размер $4 изменился.
> > След. раз если возникнет, запомните число $4 и проверьте 
> > echo 'размер' | awk '{ printf $0" > 4096 == "; exit ($0>4096) }' && echo 
> > 'Yes' || echo 'No'
> 
> Размер: 6196064, и тест - читай выше. В командной строчке работало, в скрипте 
> нет.
Значит скрипт нужно с '-x' выполнить если ещё раз возникнет.
Жалею что свою ситуёвину не сохранил,
но точно помню что команду df | tail | awk тестил уже в консоли.

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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



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

2008-01-24 Thread Andrey Nikitin
В сообщении от 24 января 2008 14:43 Andrey Nikitin написал(a):
> но точно помню что команду df | tail | awk тестил уже в консоли.
s/в консоли/в терминале (bash)/
и проблема была не в /etc/init.d/mysql а в preinst пакета,
там тоже проверка подобная есть

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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]