PostgreSQL coub express.js freeware git jquery laravel links linux macos mysql node.js php powershell python ubuntu vim virtualbox анекдот блог игры интересно стихи цитаты

Для примера посчитаем файлы и папки в каталоге:

ls -1 /home | wc -l
cat 123.txt | wc -l


Ну, это просто. Просто как обычно, надо знать волшебное слово :)

cat /etc/lsb-release
# или
cat /etc/issue
cat /etc/issue.net
# или (см. man lsb_release)
lsb_release -a


Например надо постранично посмотреть вывод той же самой du. Как? less

cd /
sudo du -h | less
Кстати, посмотреть общий размер каталога в линукс можно вот так du -hs /home/myhome


Случилась тут такая фигня. Выделил я под виртуальную машину всего ничего - 8Гб. И жил там себе и радовался. А тут на тебе, работы как привалило и внезапно я ощутил боль от такого вот опрометчивого шага. А сам VirtualBox как-то не разрешает динамически взять так и хопа сделать виртуальный хард больше. Оно и понятно, гостевая операционка с ума сойдет от таких поворотов. И решил я создать ещё один виртуальный хард и присоединить его к своей виртуалке и всё самое толстое (своё барахло по работе, базы мускульные, тонны дампов софта и тп лабудень) перенести на этот новый хард. Ну вот отрезал я значит ещё 20Гб, перезапустил виртуалку ии.. Само собой ничего автоматом не подхватилось. Поскольку в настройке линукса я новичек практически, пошел я гуглить. Ну и нагуглил ссылочку раз (как прицепить новый хард) и ссылочку два (как его отформатировать). В общем очень интересно было покрутить мозгами в ночи и постучать в бубен чуток :) Вот что примерно пришлось проделать.

sudo fdisk -l
/*
хм.. диск есть в системе. это круто. но на нем непонятная файловая система и нету разделов. 
кстати разделы можно посмотреть командой ls /dev/disk/by-uuid например, 
там ещё можно по-другому поглядеть, смотрим ls /dev/disk/
ну чо дальше.. ну думаю форматну-ка я его.
*/
sudo mkfs.ext3 /dev/sdb
sudo fdisk -l

/*
о, круто, больше на разметку диска не ругается
теперь значит можно раздел создать (я наоборот сделал, надо было сначала 
раздел а потом форматировать, но и так тоже работает как ни странно)
*/
sudo fdisk /dev/sdb

/*
тут мастер меня поспрашивал чего я хочу, я захотел один первичный 
раздел со всеми дефолтными настройками
*/
sudo fdisk -l

/*
ну что, всё круто. никаких матюгов уже не видно. премонтировать чтоли надо теперь.
*/
cd /home
sudo mkdir disk2
sudo mount /dev/sdb /home/diks2
cd /home/disk2
ls -la

/*
ура. примонтировано. lost+found папку видно. отлично.
ну теперь вроде как всё просто. надо дать себе на эту папку прав, бросить 
линк на неё в хомяк для удобства (моего) и радостно переложить туда всё своё барахло.
*/
sudo mkdir web
sudo chown ijin:ijin web
cd ~
ln -s /home/disk2/web

/*
во. теперь /home/ijin/web -> /home/disk2/web
всё. в конфигах апача поправил пути
ну и всё. смотрю свободное место..
*/
df -h

/*
и вижу что на первом диске весь этот секс освободил мне каких-то 800 МБ всего-то. 
так, думаю.. вот хренота. ещё пару жирненьких дампов в БД волью и привет. 
Надож как-то всё жирное унести .. минут 5 пытаюсь руками найти где лежат мускульные базы. 
ищу вручную найти не могу. вспоминаю про волшебную утилитку du. делаю значит..
*/
cd /
sudo du -h | grep mysql

/*
rem: sudo - чтобы ходить по всем-всем папкам, даже тем в которые у моего юзера нет доступа.
и вижу ацкий поток строк. смотрю на строчки которые du отдает (хорошо уже глазки привыкли 
на всё подряд регулярные выражения примерять :) и вижу, что указанный размер в Гб можно 
легко выловить из этого потока шлака. у grep есть клёви ключик -r, который позволяет не тупо 
искать подстроку а искать строчку совпадающую с регулярным выражением.
*/
cd /
sudo du -h | grep -r .*G.*mysql.*

/*
и вот они искомые обожравшиеся папки :) везение конечно чистой воды, наверняка есть
способ проще узнать где лежат мускульные базы, или просто нефигово бы знать где они 
лежат.. но в общем вот так вот при помощи кувалды и какой-то матери :) пришли к нужному 
результату. как говорил товарищ Христос "ищите и обрящите" (с) =)
*/
du disk usage

/*
теперь наверное осталось закрепить успех в /etc/fstab
для чего исполняем
*/
sudo mcedit /etc/fstab

/*
и в нем по аналогии с "UUID=бебебе / бебебе"  (это подключение основного раздела 
первого диска по UUID я так понимаю) прописываем
/dev/sdb /home/disk2 бебебе как в оригинальной строке хвост про ext3 и ещё какая-то "лабуда"
это надо затем чтобы после каждой перезагрузки не приходилось обламываться от того что 
второй диск не подключен и при загрузке демоны которые с него почитать хотят страшными 
словами ругаются, кроме того.. ну к нему тупо не будет доступа пока не скажешь
*/
sudo mount /dev/sdb /home/disk2

/*
в общем вот так должно быть примерно в фстабе
*/

Ну дальше понятно, упер базы на другой диск. Вот такая вот карусель. Чем больше калупаюсь с линуксом тем больше он мне нравится. Там всё можно сделать миллионом разных способов. Границ практически нет. Космические знания не нужны - под рукой всегда есть man и гугл. Только желание по сути. Я ещё хотел как-то написать про настройку сети в VirtualBox при том что ноут у меня ходит в сеть не по проводу, а через вайфай роутер, и одним коннектом на инет не обойтись, так как при таком раскледе на виртуалку не зайти, и надо было ещё один сетевой интерфейс поднимать, но это.. как говорится, совсем другая история :) Удачи вам. In byte we trust ;)

P.P.S.: да, при переносе баз в другое место я огреб уже известную с 8.04 проблему с apparmor. Фиксится это просто:
sudo mcedit /etc/apparmor.d/usr.sbin.mysqld

# меняем путь в строках
# /var/lib/mysql/ r,
# /var/lib/mysql/** rwk,
# на свой
# /home/disk2/mysql_db/ r,
# /home/disk2/mysql_db/** rwk,

sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql restart

# взлёт. 5 минут полет нормальный. =)
# права на папки 755, на файлы 660
# пользователь и группа на всё mysql:mysql


Вот была такая необходимость выводить результат запроса к мускулю в простой текстовик в связи с тем что результат большой надо было посмотреть а удаленного доступа к серверу БД нЕбыло. Был только шел и sftp соответственно. Долго думать не пришлось, но на всякий случай я ещё спросил у старших товарищей, итого есть два варианта:

# тут вариант номер раз, без мана
lala:~$ echo 'show full processlist' | mysql -u root > res.txt

# это почти тоже самое но со знанием мана
lala:~$ mysql -u root -e 'show full processlist'  > res.txt


aghr