Команды FreeBSD

Здесь представленны основные команды FreeBSD для мониторинга системы и не только.


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

mount — показывает смонтированные подразделы и флаги из монтирования
df — показывает смонтированные подразделы, их размер и свободное место на них
fdisk /dev/ad0 — показывает информацию о диске ad0 и разделах на нем
disklabel /dev/ad0s1 — показывает список подразделов в первом разделе диска ad0
swapinfo — показывает список подразделов свопинга на дисках и их использование
fstat — показывает список открытых файлов (имена файлов не выводятся)
pstat -f — выводит список открытых файлов (имена файлов не выводятся)
systat -vmstat n — каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.
iostat — выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки.
vmstat — выводит количество операций на диске в секунду
/stand/sysinstall — можно посмотреть и изменить разметку диска и монтирование
less /etc/fstab — таблица монтирования при загрузке
du -h /путь к каталогу — выводит размер каталога
gstat — выводит статистику о записи на диски(очередь) очень удобно!!!

Ремонт файловой системы

fsck — проверка диска на ошибки

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

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

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

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

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

date — выводит текущее время и дату
date 201010012312 — устанавливает время 23:12 01-10-2010
— выводит, сколько времени назад система загрузилась и залогиненных пользователей
last — выводит историю перезагрузок и входов пользователей

Работа над файлами
tar -xzf archive.tgz — разархивировать архив *.tar.gz
unzip archive.zip — разархивировать архив *.zip

Поиск файлов
find /etc -name «*.conf» -найти в каталоге /etc все файлы с расширением .conf
find /etc -name «moy_f*» -найти в каталоге /etc все файлы имя которого начинается с moy_f

По материалам syscentr

Копирование файлов и запуск команд через ssh утилитой scp

Используем следующий формат команд

scp [модификатор] [источник] [место_назначения]

Если в качестве источника или места назначения указывается удаленный сервер, то формат параметра такой:

После запуска команды потребуется ввести пароль от указанной учетной записи удаленного сервера.

Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 0.0.0.0 можно командой:

scp /home/user/file.tgz root@0.0.0.0:/root

Чтобы скачать этот же файл с удаленного сервера:

scp root@0.0.0.0:/root/file.tgz /home/user

За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:

scp file1.tgz file2.tgz root@0.0.0.0:/root

Для копирования каталога потребуется задействовать модификатор команды –r. Копируем локальный каталог /home/user/dir на удаленный сервер:

scp –r /home/user/dir root@0.0.0.0:/root

В тех случаях, когда SSH-сервер работает на нестандартном порту, поможет опция –P. Если нужно подключиться через порт 10022:

scp –P 10022 /home/user/file.tgz root@0.0.0.0:/root

Перенос FreeBSD сервера с ZFS root файловой системой на новый pool

Попались мне под руку пара винтов побольше и еще один компьютер. Наслышан я о чудесах и простоте переноса ZFS и решил попробовать.

Задача перенести сервер под FreBSD, что уже работает, на новый сервер с помощью ZFS.

Ну и так сказать своеобразный бекап.

Бекап это сомнительно. Потому как на исходном тоже стоит всё на «мирроре»

Создаем ключ

# ssh-keygen

# cat /root/.ssh/id_rsa.pub | ssh root@127.0.0.1 ‘cat >> /root/.ssh/authorized_keys’

[root@server ~]# zpool list -v

NAME                                     SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT

Грузимся с CD и работаем в Live-режиме mfsBSD

# mkdir /root/.ssh

# camcontrol devlist

vi /etc/ssh/sshd_config 

В конфиге разрешаем root-у логиниться. 

Отключаем DNS проверку, чтобы побыстрее было немного. 

PermitRootLogin yes 

UseDNS no 

Задаем пароль для пользователя root: 

# passwd root 

Указываем интерфейсу нужный IP адрес 

ifconfig re0 add 127.0.0.0.1/24 

или dhclient re0

запускаем sshd: /etc/rc.d/sshd onestart

Далее создаём разделы…

# gpart create -s gpt ada0

# gpart add -b 40 -s 512k -t freebsd-boot ada0

# gpart add -s 8g -t freebsd-swap ada0

# gpart add -t freebsd-zfs ada0

[root@mfsbsd ~]# gpart show

=>        40  1953522976  ada0  GPT  (932G)

          40        1024     1  freebsd-boot  (512K)

        1064    16777216     2  freebsd-swap  (8.0G)

    16778280  1936744736     3  freebsd-zfs  (924G)

Создаем пул:

# zpool create -f tank /dev/ada0p3

Пул готов к приёму данных.

Переходим на сервер-источник. 

Создаем рекурсивный снапшот, который и будем передавать:

# zfs snapshot -r tank@21-04-13 

Передаем его на сервер приемник:

# screen

# zfs send -vR tank@21-04-13 | ssh 127.0.0.0.1 zfs recv -F tank

Ждем окончания передачи. У меня примерно 213 GB передавалось около 12 часов.

Переходим опять на сервер-приемник root@mfsbsd:~ 

# csh

# zfs list -t snapshot 

# zpool list

# mkdir /tmp/tank

# mount -t zfs tank/root /tmp/tank

# gpart bootcode -b /tmp/tank/boot/pmbr -p /tmp/tank/boot/gptzfsboot -i 1 ada0

# chroot /tmp/tank

Ввиду того, что с сервера-источника нам передалось всё, то поправим немного /etc/fstab. Дело в том, что своп на источнике подключен в fstab по меткам gpt. 

Настройка по меткам

# cat /etc/fstab

/dev/gptid/dadde41e-913d-11eb-92f9-ac1f6bd74a62 none swap sw 0 0

# gpart list

2. Name: ada0p2

   Mediasize: 8589934592 (8.0G)

   Sector Size: 512

   Stripe Size: 4096

   Stripe Offset: 0

   Mode: r0w0e0

   defimedia: HD(2,GPT,fffe5673-d7ad-11dd-a24d-50465d8ab2bb,0x428,0x1000000)

   rawuuid: fffe5673-d7ad-11dd-a24d-50465d8ab2bb

   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b

   label: (null)

   length: 8589934592

   offset: 544768

   type: freebsd-swap

   index: 2

   end: 16778279

   start: 1064

# vi /etc/fstab 

/dev/gptid/dadde41e-913d-11eb-92f9-ac1f6bd74a62 none swap sw 0 0 >

fffe5673-d7ad-11dd-a24d-50465d8ab2bb

Второй вариант без меток

[root@msfbsd ~]# cat /etc/fstab 

# Device Mountpoint FStype Options Dump Pass#

### /dev/gpt/swap0 none swap sw 0 0

>

/dev/ada0p2 none swap sw 0 0

Правим файлы в скопированной системе.

[root@mfsbsd ~]#

# zfs umount -a

# exit

Скажем кто у нас bootfs и сделаем экспорт:

# zpool set bootfs=tank/root tank

# zpool export tank

# shutdown -r now

На источнике можно удалить ненужный снапшот: 

# zfs destroy -r tank@move

Взял на afabla немного подправил на свой лад. Автору респект!

FreeBSD изменение имени хоста без перезагрузки

Сегодня поговорим про изменение имени хоста в FreeBSD без перезагрузки.

А вы знаете, как изменить имя устройства в FreeBSD, используя параметр командной строки?

Вам нужно использовать команду hostname, чтобы отобразить имя текущего хоста. Пользователь root может задать имя хоста, предоставив аргумент команде hostname. Тем не менее, редактирование файла /etc/rc.conf является хорошим способом сохранить постоянное имя хоста при перезагрузке системы. Откройте приложение терминала и введите следующую команду.

Отобразите текущее имя хоста FreeBSD

Просто введите следующую команду:

$ grep hostname /etc/rc.conf

ИЛИ

$ hostname

FreeBSD-Show-Hostname

Пример вывода:

Команда смены имени хоста FreeBSD

Процедура изменения имени компьютера во FreeBSD:

  1. Введите следующую команду для редактирования /etc/rc.conf с помощью текстового редактора vi: sudo vi /etc/rc.conf
  2. Удалите старое имя и установите новое имя в переменной hostname:
    Далее отредактируйте файл /etc/hosts: sudo vi /etc/hosts
  3. Замените любое имя существующего компьютера новым.
  4. Обновите имя хоста для текущего сеанса, введя следующую команду: sudo hostname new-name-here
  5. Необязательно: перезагрузите систему для того чтобы изменений вступили в силу: sudo reboot

Как изменить имя хоста сервера FreeBSD без перезагрузки системы?

Введите следующие команды на сервере FreeBSD:

$ sudo hostname new-server-name-here

Затем отредактируйте файл /etc/rc.conf и измените имя хоста:

$ sudo vi /etc/rc.conf

Пример:

hostname=»new-server-name-here»

Сохраните и закройте файл. Наконец, отредактируйте файл /etc/hosts и обновите строки, которые читают ваше имя старого хоста:

$ sudo vi /etc/hosts

Из:

127.0.0.1 old-host-name

В:

127.0.0.1 new-server-name-here

Сохраните и закройте файл.

Параметры команды hostname

Включите информацию о домене в выводимое имя. Это поведение по умолчанию:

$ hostname -f

Отключите любую информацию о домене в выводимом имени:

$ hostname -s

Вывод информацию о домене:

$ hostname -d

Получение дополнительной информации

Прочтите следующие страницы руководства:

$ man 5 rc.conf$ man 1 hostname

Спасибо за уделенное время на прочтение статьи!

Источник

Как сохранить файл в Vim/Vi и выйти из редактора

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

Vim или его предшественник Vi предустановлен на MacOS и почти во всех дистрибутивах Linux. Знание основ Vim поможет вам, если вы столкнетесь с ситуацией, когда ваш любимый редактор недоступен.

В этой статье мы объясним, как сохранить файл в Vim/Vi и выйти из редактора.

Режимы в Vim

Когда вы запускаете редактор Vim, вы находитесь в командном режиме. В этом режиме вы можете использовать команды vim и перемещаться по файлу.

Чтобы иметь возможность печатать текст, вам нужно войти в режим вставки, нажав клавишу i. Этот режим позволяет вставлять и удалять символы так же, как в обычном текстовом редакторе.

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

Откройте файл в Vim/Vi

Чтобы открыть файл с помощью Vim, наберите vim за которым следует имя файла, который вы хотите отредактировать или создать:

vim file.text

Другой способ открыть файл – это запустить редактор и набрать :e file_name, где file_name имя файла, который вы хотите открыть.

Сохранить файл в Vim/Vi

Команда для сохранения файла в Vim есть :w.

Чтобы сохранить файл без выхода из редактора, вернитесь в командный режим, нажав Esc, введите :w и нажмите Enter.

Как сохранить файл в Vim/Vi и выйти из редактора
  1. Нажмите Esc
  2. Тип :w
  3. Нажмите Enter

Существует также команда обновления, :upкоторая записывает буфер в файл, только если есть несохраненные изменения.

Чтобы сохранить файл под другим именем, используйте :w filewname и нажмите Enter.

Сохраните файл и выйдите из Vim/Vi

Команда сохранить файл в Vim и выйти из редактора :wq.

Чтобы сохранить файл и выйти из редактора одновременно, нажмите, Esc чтобы переключиться в командный режим, введите :wq и нажмите Enter.

Как сохранить файл в Vim/Vi и выйти из редактора
  1. Нажмите Esc
  2. Тип :wq
  3. Нажмите Enter

Другая команда для сохранения файла и выхода из Vim – :x это запись буфера в файл, только если есть несохраненные изменения.

Выйдите из Vim/Vi без сохранения файла

Чтобы выйти из редактора, не сохраняя изменения, переключитесь в командный режим, нажав Esc, введите :q! и нажмите Enter.

Как сохранить файл в Vim/Vi и выйти из редактора
  1. Нажмите Esc
  2. Тип :q!
  3. Нажмите Enter

По материалам andreyex.ru

FreeBSD: перезапуск служб с помощью /etc/rc.d

Многие из файлов в каталоге /etc/rc.d предназначены для основных сервисов, они могут управляться параметрами start, stop, и restart. Например, sshd(8) может быть перезапущен следующей командой:

# /etc/rc.d/sshd restart


Поскольку система rc.d в основном предназначена для запуска/отключения сервисов во время запуска/отключения системы, стандартные параметры start, stop и restart будут работать только если установлена соответствующая переменная в /etc/rc.conf. Например, команда выше sshd restart будет работать только если переменная sshd_enable в файле /etc/rc.conf установлена в YES. Для выполнения скриптов независимо от установок в /etc/rc.conf, параметры start, stop или restart необходимо задавать с префиксом »force». Например, для перезапуска sshd независимо от установок в /etc/rc.conf, выполните следующую команду:

# /etc/rc.d/sshd forcerestart


Проверить состояние переменной в файле /etc/rc.conf легко: запустите соответствующий скрипт из rc.d с параметром rcvar. Проверка переменной для sshd выполняется следующей командой:

# /etc/rc.d/sshd rcvar
# sshd

$sshd_enable=YES


Чтобы определить, запущен ли сервис, существует параметр status. Например для проверки того, запущен ли sshd, выполните:

# /etc/rc.d/sshd status
sshd is running as pid 433.


В некоторых случаях возможна также перегрузка (reload) сервиса. Скрипт, запущенный с этим параметром, попытается отправить сервису сигнал, вызывающий перезагрузку файлов настройки. В большинстве случаев это означает отправку сервису сигнала SIGHUP. Следует помнить, что эту функцию поддерживают не все сервисы.