Re: /etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full!
В сообщении от 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]
Re: /etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full!
В сообщении от 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!
В Чтв, 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!
В сообщении от 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!
В Чтв, 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!
В сообщении от 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!
Покотиленко Костик -> 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!
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!
В 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!
Покотиленко Костик -> 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]
/etc/init.d/mysql: ERROR: The partition with /var/lib/mysql is too full!
После перезагрузки сервера появилась вот такая беда: /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]