Опции CFLAGS FreeBSD

Опции CFLAGS FreeBSD:
1. “-О” Компилятор пытается сократить как размер кода, так и время его выполнения. И при этом не выполняет модификаций, которые могут затруднить отладку программы. Включает опции -fno-optimize-size, -fdefer-pop, -fthread-jumps, -fguess-branch-probability, -cprop-registers и-fdelayed-branch. Флаг -fomit-frame-pointer устанавливается только если применяемый отладчик способен работать без использования регистра указателя кадра стека.

2. “-О0″ Действует по умолчанию. Отключает любые оптимизации размера кода и устанавливает флаг -fno-merge-constants.

3. “-О1″ То же, что -О

4. “-О2″ На этом уровне применяются все виды оптимизации, которые не требуют вычисления оптимального выбора между размером и скоростью кода. Кроме флагов, устанавливаемых при -О, дополнительно задействует следующие опции -foptimize-sibling-calls, -fcse-follow-jumps, -fcse-skip-blocks, -fgcae, -expensive-optimizations, -fstrength-reduce, -frerun-cse-after-loop, -frerun-loop-opt, -fcaller-aaves, -fforce-mem, -fpeephole2, -fshedule-insns, -fshedule-insns-after-reload, -fregmove, -fstrict-aliasing, -fdelete-null-pointer-checks и -freorder-blocka. Этот уровень оптимизации не разворачивает циклы, не выполняет оптимизацию подстановок (inlining) и переназначение регистров.

5. “-О3″ В дополнение к опциям, включаемым при -О2, устанавливает также -finline-functions и -frename-registers.

6. “-Os” Оптимизирует размер программы. Устанавливает все опции, действующие при -О3. Устанавливает опции -falign-loops, -falign-jumps, -falign-labels и -falign-functions с параметром =1, что не допускает вставку пустого пространства для применения выравнивания.

Выдернуто из комментариев на http://www.lissyara.su/?id=1326 .

Как удалять старые бэкапы?

один из способов:

/usr/bin/find /var/backup/ -name “*” -mtime +10 -print | /usr/bin/xargs rm -rf

Итого: удаляем из папки /var/backup/ все то, что были изменено более 10 дней назад.

Шпаргалка по Unix (FreeBSD, Linux and etc…)

Такой… Мини-справочник для начинающих.

http://cb.vu/unixtoolbox.xhtml

Ну и в PDF: http://cb.vu/unixtoolbox.pdf

Как русифицировать консоль во FreeBSD 7.0

Bash: $HOME/.inputrc
set convert-meta off
set input-meta on
set output-meta on

$HOME/.bash_profile
export CHARSET=CP1251
export MM_CHARSET=CP1251
export LANG=ru_RU.CP1251
export LC_ALL=ru_RU.CP1251

Tcsh[Csh] $HOME/.login
setenv CHARSET CP1251
setenv MM_CHARSET CP1251
setenv LANG ru_RU.CP1251
setenv LC_ALL ru_RU.CP1251

FreeBSD: Эмуляция проблемных каналов

В файрволе FreeBSD (IPFW) есть довольно редкая встроенная фича - возможность эмуляции потери пакетов, задержки, полосы пропускания и др. параметров связи.

Эта поддержка включена в подсистему TRAFFIC SHAPER (DUMMYNET).

Настраивается следующим образом:

1. Создаем “канал” (pipe) с необходимыми характеристиками:
ipfw pipe config plr <от 0 до 1> delay <в миллисекундах> bw 300Kbit/s queue 128Kbytes [red] [noerror]

2. Дальше выбираем трафик, который в этот канал будет попадать:
ipfw add pipe

3. Просмотр конфигурации канала: ipfw pipe show

Пример (эмуляция 30% потерь всех пакетов от 192.168.11.40):
ipfw pipe 10 config plr 0.3
ipfw add 10 pipe 10 ip from 192.168.11.40 to any
ipfw pipe show
ipfw show

Подробнее в man ipfw

Область применения данной технологии: шейпер (ограничение скорости по ip-адресам, протоколам), тестирование сетевых решения и программных продуктов в условиях, приближенных к реальным проблемным (или забитым) каналам.

FreeBSD: Средства мониторинга

Во FreeBSD существует огромное количество средств для получения информации о функционировании системы. Однако некоторые из них спрятаны немного нетривиально.

1. Информация о дисках

1. mount - показывает смонтированные подразделы и флаги из монтирования
2. df - показывает смонтированные подразделы, их размер и свободное место на них
3. fdisk /dev/ad0 - показывает информацию о диске ad0 и разделах на нем
4. disklabel /dev/ad0s1 - показывает список подразделов в первом разделе диска ad0
5. swapinfo - показывает список подразделов свопинга на дисках и их использование
6. fstat - показывает список открытых файлов (имена файлов не выводятся)
7. pstat -f - выводит список открытых файлов (имена файлов не выводятся)
8. systat -vmstat n - каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.
9. iostat - выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки.
10. vmstat - выводит количество операций на диске в секунду
11. /stand/sysinstall - можно посмотреть и изменить разметку диска и монтирование
12. less /etc/fstab - таблица монтирования при загрузке

2. Информация о процессоре и памяти

1. systat -vmstat n - вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см)
2. top - аналогичная информация в сокращенном виде + использование памяти и свопа в мегабайтах, список процессов, отсортированных по использованию процессора.
3. ps afx - список запущенных процессов и время процессора на каждый

3. Информация о сети

1. ifconfig - список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра)
2. systat -ifstat n - объем трафика за n секунд на всех сетевых интерфейсах
3. netstat - вывод активных сетевых соединений (сокетов)
4. systat -netstat n - аналог netstat в реальном времени
5. systat -ip n - таблица IP-пакетов и ошибок по типам за n секунд
6. systat -tcp n - таблица TCP-пакетов и ошибок по типам за n секунд
7. systat -icmp n - таблица ICMP-пакетов и ошибок по типам за n секунд
8. netstat -ibt - список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера
9. netstat -r - таблица маршрутизации
10. arp -a - таблица ARP
11. tcpdump -i rl0 host 192.168.61.20 and port 80 - сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80
12. trafshow -i rl0 - программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)

4. Службы времени

1. date - выводит текущее время и дату
2. w - выводит, сколько времени назад система загрузилась и залогиненных пользователей
3. last - выводит историю перезагрузок и входов пользователей

Need to remove all those ^M characters from a DOS file?

Need to remove all those ^M characters from a DOS file? Try

tr -d \\r < dosfile > newfile

BSD Tips, Tricks,Docs and FAQ’s

*BSD are OpenSource implementations of the complete UNIX-compatible operating system. Their most popular derivates, FreeBSD, OpenBSD and NetBSD contain everything you need for a running system, including kernel, C libraries, commandline tools, installation program and a superb system to integrate and update third-party applications.
Although these days Linux is in every mouth, I found BSD OS’es to be more stable, secure and especially faster and less bloated than typical Linux distributions (while optionally offering binary Linux compatibility!). Guess this is why BSD systems are still the most popular OS’ses of hosting services, making webservers fast and secure by default.

With this page, I’d like to share my favorite BSD link collection with you, hoping it will ease your first steps with the BSD of your choice.

Перенос FreeBSD с одного HDD на другой

Написано по мотивам статей:
http://www.freebsd.org.ru/how-to/w2w.html
http://sysadmin.su/index.php?option=com_content&task=view&id=33
http://www.opennet.ru/base/sys/movingfbsd.txt.html

Подключаем 2 HDD, включаем комп, смотрим как определился (например: ad2).
Создаем директории /mnt/root, /mnt/var, /mnt/usr, /mnt/tmp.
Запускаем /stand/sysinstall, в ней выбираем configure -> fdisk, ad2.
Создаем freebsd slice на всем винте нажав “A”, нажимаем “S” (set bootable), нажимаем “W” (write changes). “Q” выходим из fdisk, задастся вопрос надо ли создать Master Boot Record. Выбираем Standart Install standart MBR и YES.
После этого перезагружаемся. - ВАЖНО!!!
Запускаем /stand/sysinstall -> Label, выбираем ad2, создаем partitions.
Если вручную, то “С”.
Например:
винт 80Gb
“С” -> 512M ->FS ->/
“С” -> 512M ->SWAP
“С” -> 30000M ->FS ->/var
“С” -> 10000M ->FS ->/tmp
“С” -> 35292M ->FS ->/usr

После этого меняем точки монтирования
/ -> /mnt/root
/var -> /mnt/var
/tmp -> /mnt/tmp
/usr -> /mnt/usr
Переходим на самую верхнюю строчку (Disk: ad2 Parition name: ad2s1 Free:0 blocks(0MB)). - ВАЖНО!!!
Нажимаем “W” для записи изменений и “Q” для выхода.
Потом копируем разделы по root
cd /; pax -p eme -X -rw . /mnt/root
cd /var; pax -p eme -X -rw . /mnt/var
cd /tmp; pax -p eme -X -rw . /mnt/tmp
cd /usr; pax -p eme -X -rw . /mnt/usr

Для справки:
Информация о партишнах /etc/fstab, об устройствах /dev/*
Создать устройство cd /dev; sh ./MAKEDEV ad0s1g

Exim commands

exim -qff => flush exim queue
exim -M email-id => Force delivery of one message
exim -qf => Force another queue run
exim -qff => Force another queue run and attempt to flush the frozen message
exim -Mvl messageID => View the log for the message
exim -Mvb messageID => View the body of the message
exim -Mvh messageID => View the header of the message
exim -Mrm messageID => Remove message without sending any error message
exim -Mg messageID => Giveup and fail message to bounce the message to the Sender
exim -bpr | grep “<” | wc -l => How many mails on the Queue
exim -bpr | grep frozen | wc -l => How many Frozen mails on the queue
exim -bpr | grep frozen | awk {’print $3′} | xargs exim -Mrm => Deleteing Frozen Messages
exim -bpc => find out, how many mails are there in the mail queue
exim -bp => check the mails in the queue