Архив категории: bash

bash linux NAT network pipes security

Заблуждения о файлах

Если удалить файл, свободное место увеличится на размер файла.

Ну, во-первых, файл очень часто занимает отличное от своего размера место

Если удалить файл, свободное место увеличится.

В большинстве файловых систем Linux место не освободится пока файл не закроют все процессы, работающие с ним.

Если удалить файл, свободное место увеличится, когда файл все закроют.

Вот в hfsplus в Linux 2.6.32-2.6.36 не так. В 2.6.37 это таки пофиксили.

Ну оно хотя бы не уменьшится при удалении?!

Много чудных файловых систем можно встретить. Вот например nilfs

Если дописать информацию в файл, занятое им место на диске увеличится.

Файловые системы со сжатием могут сжать новый файл лучше.

Одному имени файла всегда соответствует один и тот же файл.

Файлы кто-то может переименовать (c)ваш К.О. Даже в самый неожиданный момент (c)всё тот же К.О. Читать далее »

bash build programming

Кросс-компиляция cygwin → mingw

Некоторое время назад я начал свой кроссплатформенный проект. Поскольку сижу я в основном за Windows, то для компиляции обычно использую cygwin, а для сборки билдов для тестеров под cygwin живет i686-w64-mingw. Все было хорошо, но вот пришла пора, и для вывода пары фраз текста я решил подключить к проекту libfreetype. При компиляции на cygwin проблем нет — ведь в репозитории есть соответствующий пакет, ну а для mingw, естественно, придется собирать либу самому.

Дабы ко мне не было вопросов, я решил подключать либу динамично, а все ее зависимости (чтобы не тащить кучу левых файлов) линковать статично. О моем горьком опыте я здесь и расскажу.
Читать далее »

bash linux one-liner

Калькулятор, который всегда под рукой

— Так у тебя уже трое детей? И сколько им лет?
— Если перемножить их возраст, то получится 36. А если сложить, то получим номер автобуса, на котором мы с тобой едем.
— Но я не могу на основании этого определить их возраст!
— А, забыл сказать — старший такой же рыжий как и я!
— Ну тогда ясно!

А Вам ясно? Сразу? Серьёзно? Хорошо Вам! Тем, кто так быстро не считает, может помочь калькулятор, который всегда под рукой(у линуксоидов):

Под катом код не однострочником Читать далее »

bash linux

Настраиваем apcupsd

На всякий случай были написаны скрипты для автоматического старта и корректного завершения работы виртуальных машин(в случае потери питания, выполняется демоном apcupsd)
Из интересных(по крайней мере для меня) моментов я бы хотел отметить способ запуска команды от имени определённого пользователя, даже если скрипт запущен от root’а. Это необходимо потому, что VirtualBox привязывает виртуалки к пользователю, и если запустить от root’а vboxmanage list runningvms при запущенных виртуалках, он ничего о них не скажет. По этому был на коленке быстренько написан следующий код:
startvm.sh

stopvm.sh

А заключения не будет. Могу только сказать, что при добавлении /home/firefish/stopvm.sh в /etc/apcupsd/onbattery, оно таки заработало:

Интервал ONBATTERYDELAY увеличен до 30 секунд для игнорирования отключений электричества на короткое время. Хотя первый проваленный этой логикой тэсткейз — несколько подряд отключений на 29 секунд. Будем надеятся, что фикс будет написан раньше, чем это случится.