MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
-
Контактная информация:
Непрочитанное сообщение
weec » 2011-02-11 17:21:17
вывести размер хранилища в гигабайтах
Код: Выделить всё
k=0; for f in $((mysql -NBe "SHOW DATABASES" | while read i; do mysql -NBe "select sum(data_length), sum(index_length) from information_schema.tables where table_schema='$i'"; done ) | perl -anle 'print ($F[0]+$F[1])') ; do k=$(($k+$f)); done ; echo $(($k/1024/1024/1024))
однострочник считает размер данных и индексов
weec
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
-
Контактная информация:
Непрочитанное сообщение
ProFTP » 2011-02-11 17:56:51
а как его запустить?
Код: Выделить всё
# k=0; for f in $((mysql -NBe "SHOW DATABASES" | while read i; do mysql -NBe "select sum(data_length), sum(index_length) from information_schema.tables where table_schema='$i'"; done ) | perl -anle 'print ($F[0]+$F[1])') ; do k=$(($k+$f)); done ; echo $(($k/1024/1024/1024))
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'


ProFTP
-
weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
-
Контактная информация:
Непрочитанное сообщение
weec » 2011-02-11 18:14:18
у меня работает
запускаю в bash, + уcтановлен perl
weec
-
weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
-
Контактная информация:
Непрочитанное сообщение
weec » 2011-02-11 18:16:27
попробуй так
Код: Выделить всё
k=0; for f in `(mysql -NBe "SHOW DATABASES" | while read i; do mysql -NBe "select sum(data_length), sum(index_length) from information_schema.tables where table_schema='$i'"; done ) | perl -anle 'print ($F[0]+$F[1])'` ; do k=$(($k+$f)); done ; echo $(($k/1024/1024/1024))
weec
-
ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
-
Контактная информация:
Непрочитанное сообщение
ProFTP » 2011-02-11 18:21:28
мне выдало 0
может попробовать убрать
это же индексы по идее...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'


ProFTP
-
FiL
- ст. лейтенант
- Сообщения: 1374
- Зарегистрирован: 2010-02-05 0:21:40
Непрочитанное сообщение
FiL » 2011-02-12 19:58:40
Код: Выделить всё
# du -hs ~mysql/cacti/
1.1M /var/lib/mysql/cacti/
# mysql -NBe "select sum(data_length), sum(index_length) from information_schema.tables where table_schema='cacti'"
122934 199680
Итого, имеем разницу между 320 кил и 1.1 мега. В 3 раза, однако.
Для крупных баз разница наверняка будет незначительна. А вот для большого количества мелких - можно серьезно пролететь с местом на диске.
FiL
-
ADRE
- майор
- Сообщения: 2641
- Зарегистрирован: 2007-07-26 8:53:49
-
Контактная информация:
Непрочитанное сообщение
ADRE » 2011-02-12 20:11:25
написано что-то про это было в mysql мануале - даже на русском языке... google находит - точно
//del
ADRE
-
weec
- лейтенант
- Сообщения: 948
- Зарегистрирован: 2007-07-24 11:17:35
- Откуда: Afghanistan
-
Контактная информация:
Непрочитанное сообщение
weec » 2011-02-17 18:01:40
Код: Выделить всё
k=0; for f in `(mysql -NBe "SHOW DATABASES" | while read i; do mysql -NBe "SHOW TABLE STATUS" $i; done ) | awk {'print $7, $9'} | grep -v NULL | awk {'print $1+$2'}`; do k=$(($k+$f)); done ; value=$k; ((kilo=value/1024)); ((mega=kilo/1024)); ((giga=mega/1024)); echo $value bytes = $kilo Kb, $mega Mb, and $giga Gb
обновленный вариант
weec