Шпаргалки для FreeBSD. Лучше такое записать или запомнить

Автор andreyv

Очередность запуска сервисов FreeBSD.
Посмотреть очередность запуска сервисов в freebsd.
#rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

Запустить или остановить службу можно скриптом, который лежит в папке /etc/rc.d/ .

сетевые службы. Система FreeBSD 5.x/6.x скрипт для работы с сетевыми интерфейсами -> netif . Доступен только для рута (root):

Стартуем FreeBSD сетевую службу:
# /etc/rc.d/netif start
Остановить FreeBSD сетевую службу:
# /etc/rc.d/netif stop
restart FreeBSD сетевую службу:
# /etc/rc.d/netif restart

То-же самое при помощи ifconfig (если много сетевух и нет необходимости "ложить" все сетевые интерфейсы)

положить сетевуху (NIC) внаглую:
# ifconfig network-interface down
Запустить сетевой интерфейс (NIC):
# ifconfig network-interface up
Просмотреть список отключенных интерфейсов:
# ifconfig -d
Список включенных сетевух:
# ifconfig -u

FreeBSD обновить / перезагрузить таблицу маршрутизации (routing)
Обязательно надо обновить "routing table" после перезагрузки сетевой службы:
# /etc/rc.d/routing restart

Сделать все через ssh подключение:

Надо ввести команды как одну. Тогда все выполнится в фоновом режиме и никаких проблем с боевым серваком не возникнет:
# /etc/rc.d/networking restart && /etc/rc.d/routing restart
Использование программного RAID-1 (gmirror) в FreeBSD.

Программные реализации RAID, появившиеся в FreeBSD с версии 5.3:

* gstripe(8) обеспечивает чередование или RAID 0
* gmirror(8) обеспечиват зеркалирование/дуплекс или RAID 1
* graid3(8) обеспечивает чередование с контролем четности или RAID 3
Начальная g указывает на то, что эти утилиты пользуются возможностями, которые предоставляет GEOM (модульная дисковая структура).
Конфигурирование зеркалирования/дуплекса:
Для того чтобы сделать RAID1, необходимо иметь два идентичных (одного производителя и емкости) жестких диска.
# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16 (необходимое изменение системы для возможности выполнения следующей команды)
# gmirror label -v -b round-robin gm0 /dev/ad0
Metadata value stored on /dev/ad0 (gmirror label создает зеркало, функция -v включает режим отладки, -b round-robin выбирает алгоритм балансировки (в настоящее время это наиболее быстродействующий алгоритм), gm0 - имя первого зеркала GEOM и /dev/ad0 указывает на диск, содержащий данные для зеркалирования.)
# echo geom_mirror_load="YES" > /boot/loader.conf (автоматическая загрузка модуля geom)
В /etc/fstab изменяем каждый ad на gm и вставляем mirror после /dev. (прим. /dev/ad0s1a редактируем на /dev/mirror/gm0s1a)
# reboot
# gmirror insert gm0 /dev/ad2
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: rebuilding provider ad2. (вставляем второй диск в зеркало).
# gmirror list
# gmirror status
# gstat

Восстановление предыдущего ядра, после неудачной загрузки нового.
При загрузки выбрать 6 пункт меню (loader prompt)
OK unload
OK load kernel.old (/boot/kernel.old/kernel или /boot/kernel.GENERIC/kernel)
boot

Возможно загрузчик может не видеть диск с которого нужно загружать ядро, тогда нужно воспользоваться командой:
OK set currdev=disk1s1a
OK set rootdev=disk1s1a
или командой lsdev просмотреть список известных дисков и разделов, чтобы поставить свой вместо disk1s1a.
Создание полной копии раздела.
# cd / (заходим в тот каталог, который хотим скопировать)
# pax -p eme -X -rw . /mnt (в /mnt предварительно подмонтировать тот накопитель, на который будем копировать файлы)
Команды для исправления ошибок на диске (система перестала грузиться).
Загрузится в single user mode.
mount -a (смонтировать все для записи, при необходимости использовать ключи -u -f -w)
fsck -y
fsck_ffs /dev/ad1s1a
Выход в сеть через прокси сервер для fetch во FreeBSD.
Для того, чтобы fetch шел через прокси-сервер, а не на прямую, в /etc/make.conf необходимо добавить:

HTTP_PROXY="http://192.168.0.1:3128"
FTP_PROXY="http://192.168.0.1:3128"
Также при закачке портов fetch можно заменить на wget для этог в /etc/make.conf нужно добавить FETCH_CMD=wget
Утилита make и ее дополнительные команды.
make fetch - скачивает приложение(порт).
make extract - распаковывает его.
make depends - перестроить зависимости.
make patch - применить патчи к приложению.
make build - собрать приложение из исходных тестов.
make clean - "почистить" исходники после сборки.
make deinstall - деинсталлировать приложение.
make reinstall - переустановить приложение после удаления.
make package - построить из порта package.

make WITH_ИМЯОПЦИИ=yes WITHOUT_ИМЯОПЦИИ=yes BATCH=yes install && make clean

В последнем случае включаем/выключаем опции и говорим принимать настройки по умолчанию (запрос настроек порта или зависимостей) установить и провести очистку от временных файлов

При необходимости можно использовать принудительную установку приложения(порта) командой:
make FORCE_PKG_REGISTER=YES install

Отключение ACPI.
1. acpi_load="NO" - добавить в loader.conf
2. unset acpi_load - если ядро не грузится
3. hint.acpi.0.disabled="1" - добавить в /boot/device.hints
4. loader.acpi_disabled_by_user="1"


Пользователи:

Если Вам нужен список пользователей системы выполняем скрипт:
cat /etc/passwd | cut -d: -f1 | grep -v #

The cut command selects portions of a file. We use ":" as the delimiting character. And we want only the first field. The grep eliminates lines with # in them, which normally appear at the start of the password file.

Exercises for the interested and motivated:
* try the above command without the grep
* remove the before the #
* try -f5 instead of -f1.

Удаление пользователя
# rmuser имя-пользователя
Matching password entry:
имя-пользователя:*:1002:0::0:0:имя-пользователя:/home/имя-пользователя:/bin/sh
Is this the entry you wish to remove? y
Remove user's home directory (/home/имя-пользователя)? y
Removing user (имя-пользователя): files(1) mailspool home passwd.


Чистим конфиг от комментариев (на примере exim.conf)

cat /etc/exim/exim.conf|grep -vi "^[ #]*$"|grep -vi "^[ #]*#.*$"

поиск текста в

поиск текста в файлах папки и рекурсивно подпапках

find /dir/to/be/searched -name '*.*' -exec grep 'search string' {} /dev/null ;

Войдите на сайт для отправки комментариев
Срд, 07/09/2008 - 23:17 — admin
Запустить или

Запустить или остановить службу можно скриптом, который лежит в папке /etc/rc.d/ .

Нас итересуют сетевые службы - ими и займемся. Система FreeBSD 5.x/6.x скрипт для работы с сетевыми интерфейсами -> netif . Доступен только для рута (root):

Стартуем FreeBSD сетевую службу:
# /etc/rc.d/netif start
Остановить FreeBSD сетевую службу:
# /etc/rc.d/netif stop
restart FreeBSD сетевую службу:
# /etc/rc.d/netif restart

Manual method using ifconfig

положить сетевуху (NIC) внаглую:
# ifconfig network-interface down
Запустить сетевой интерфейс (NIC):
# ifconfig network-interface up
Просмотреть список отключенных интерфейсов:
# ifconfig -d
Список включенных сетевух:
# ifconfig -u

FreeBSD обновить / перезагрузить таблицу маршрутизации (routing)
Обязательно надо обновить "routing table" после перезагрузки сетевой службы:
# /etc/rc.d/routing restart

Как рестартонуть сетевую службу через ssh подключение?

Надо ввести команды как одну. Тогда все выполнится в фоновом режиме и никаких проблем с боевым серваком не возникнет:
# /etc/rc.d/networking restart && /etc/rc.d/routing restart

`.cshrc`:setenv

`.cshrc`:
setenv SOCKS_SERVER 192.168.1.1:1080
setenv HTTP_PROXY 192.168.1.1:3128
setenv HTTP_PROXY_AUTH "basic:*:user:pass"

Для того, чтобы при выполнении make качалка ( fetch) лезла в инет можно

в /etc/make.conf прописать
HTTP_PROXY="http://PROXY_IP:PROXY_PORT"
FTP_PROXY="http://PROXY_IP:PROXY_PORT"

а в переменные среды вписать

setenv HTTP_PROXY "http://user:pass@PROXY_IP:PROXY_PORT"
FTP_PROXY "http://user:pass@PROXY_IP:PROXY_PORT"

user и pass - это данные авторизации на PROXY

Обновление портов

Обновление локального дерева портов.

Программное обеспечение для FreeBSD постоянно усовершенствуется. И чтобы идти в ногу со временем, нужно хотя бы раз в месяц обновлять его.
В данной статье мы рассмотрим обновление локального дерева портов и немного затронем обновление программ при помощи набора портов.

Порт - это один из очень удобных способов установки программного обеспечения для FreeBSD. Чтобы установить нужную программу достаточно войти в директорию с нужным портом и дать всего одну команду make
install.

Что же происходит при выполнении make install?

1. Если в каталоге /usr/ports/distfiles не обнаружен устанавливаемый пакет, то выполняется команда make fetch. Загружается с ftp сервера исходный tar-архив и копируется в каталог /usr/ports/distfiles. Проверяются зависимость от других пакетов, нужные скачиваются.

2. Выполняется команда make checksum. Т.е. проверяется подлинность архива tar.

3. Далее архив расспаковывается в рабочий каталог work (make extract).

4. В исходный код вносятся исправления из каталога files (make patch).

5. Выполняется сценарий конфигурирования make configure.

6. Компилируется исходный код (make build)

7. Копирование файлов в соответствующие каталоги (make install).

После инсталляции порта, запись о нем создается в каталоге /var/db/pkg/.

Ну чтож за дело! Для обновления локального дерева портов нам понадобится пакет cvsup. Установим его.

# cd /usr/ports/net/cvsup/
# make install

Создадим конфигурацию при помощи псевдо-порта cvsupit

# cd /usr/ports/net/cvsupit/
# make
# make install

На экране должно появится меню псевдо-порта cvsupit. Выберите пункт меню The 5.0-current branch (.=HEAD). В остальных меню примите все по умолчанию (не устанавливайте исходники /src) и откажитесь от обновления
CVSup.

В каталоге /etc должен появится файл cvsupfile. Откройте его и закоментируйте все строки начинающиеся с src. Должно получится примерно следующее:

*default host=cvsup.ru.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs
*default tag=.
*default delete use-rel-suffix
# src-all
*default tag=.
ports-all
doc-all

А теперь самое главное - обновляем порты:

# /usr/local/bin/cvsup -g -L 2 /etc/cvsupfile
Я обновляю дерево портов каждую неделю через cron. Я создал файлик cvsup_up.sh в /usr/local/sbin/ и поместил в него команду обновления портов (см. выше). В /etc/crontab добавил следующую строчку
35 23 * * 6 root /usr/local/sbin/cvsup_up.sh

Чтобы посмотреть какие программы мне нужно обновить, я использую команду

# pkg_version -v > /tmp/newport

Для обновления какой-либо программы заходим в нужный порт и последовательно выполняем следующие команды:

# make clean
# make
# pkg_delete -f имя_пакета
# make install clean

имя_пакета - это название установленного ранее пакета (например cvsup-6.1_3)

http://allwork.kiev.ua

Обновлено: 12.03.2015