Linux: различия между версиями
Vix (обсуждение | вклад) Нет описания правки |
Vix (обсуждение | вклад) Нет описания правки |
||
Строка 12: | Строка 12: | ||
make uninstall | make uninstall | ||
==[[Как собрать бинарный deb пакет: подробное HowTo]]== | ==[[Как собрать бинарный deb пакет: подробное HowTo]]== | ||
==[[Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере]] | |||
==Samba или работа в сети с Windows== | ==Samba или работа в сети с Windows== | ||
* узнать имя компьютера: | * узнать имя компьютера: |
Версия от 07:45, 10 октября 2023
Виртуализация
Стандарты
- RFC3164 Протокол BSD Syslog
Debian
- компиляция из исходников:
make mkdir ./complite make install checkinstall make uninstall
Как собрать бинарный deb пакет: подробное HowTo
==Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере
Samba или работа в сети с Windows
- узнать имя компьютера:
# nmblookup -A 192.168.0.111 Looking up status of 192.168.0.230 BEGINER <20> - B <ACTIVE> MAC Address = 90-2B-34-41-EF-95
Удаленное управление пользователями в консоли:
ssh remotehost
ps -aux | grep bash
Получаешь примерно такую картину:
root 2043 0.0 0.7 4892 1644 tty1 S 00:24 0:00 -bash root 2441 0.0 0.0 4932 8 pts/1 S 00:31 0:00 /bin/bash root 2490 0.0 0.0 4932 4 pts/2 S 00:33 0:00 /bin/bash root 2497 0.0 0.0 4936 4 pts/3 S 00:33 0:00 /bin/bash root 2511 0.0 0.4 4936 1024 pts/4 S 00:35 0:00 /bin/bash root 7940 0.0 0.7 4936 1672 pts/5 S 05:09 0:00 -bash root 9275 0.0 0.7 4932 1664 pts/6 S 08:12 0:00 -bash root 12301 0.2 0.7 4932 1664 pts/7 S 21:44 0:00 -bash root 12377 0.0 0.2 3780 532 pts/7 S 21:46 0:00 grep bash
Теперь
kill -9 Nr.prozessa
Только смотри свой процесс не убей... :)
Как определить какая программа слушает порт?
netstat -nap|grep 8080
или
netstat -natp
- Альтернативный способ:
ss
или
ss -a
или
ss -l
Запуск программ в фоне
top&
или
nohup top &
Команды Linux
Не мог не затронуть в блоге данную тему. В данной статье опишу то, что есть на просторах интернета в громадных количествах.
Наверно, в большей степени делаю это для себя, в виде шпаргалки. Ну и для посетителей :)
В статье опишу основные команды Linux, которые приходилось применять при изучении и работе в ОС Linux. Хватит слов, приступим:
Работа в интерпретаторе
- history – Отображает всю историю введенных команд
- N – N-строк истории команд
- -dN - удалить N-ю строку в истории команд (например введенный пароль)
- !! - последняя введенная команда
- !N - N-я команда в истории
- !-N - команда, введенная N-шагов назад
- !string - последняя команда, начинающаяся со string
- !$ - последнее слово из предыдущего события
- !?string? -последняя команда содержащая string
- !!:s/новый/старый - замена в последней введенной команде, фразы старый на новый
Файловые команды
- basename - Удаляет любой путь и указанный суффикс из имени файла (получает имя файла)
- cd dir – сменить директорию на dir, при этом, если в текущем каталоге нет подкаталога dir, то поиск dir происходит по каталогам, указанным в переменной $CDPATH
- cp file1 file2– скопировать file1 в file2
- -r – рекурсивно
- -f или --force - попытаться удалить существующую цель, если в нее нельзя записывать.
- -i или --interactive - интерактивно подтвердить попытку замещения существующего файла
- -b или --backup - сделает резервную копию файлов, которые будут замещены.
- -p - сохранить атрибуты копируемого файла (время, права и т.п.)
- csplit - Разбивает заданный файл на несколько новых файлов в соответствие с заданными образцами или номерами строк и выдает количество байтов в каждом новом файле
- ddif=/source/device of=/target/device bs=blocksize count=кол-во_блоков - копирование и преобразование файлов
- dirname - Удаляет из имени файла суффикс, не являющийся директорием (получает имя каталога - путь)
- ln file link – создать хардлинк link к файлу file
- -s – создать символическую ссылку
- ls– список файлов и каталогов
- -a – со скрытыми
- -l - форматированный одноколоночный список (выводится тип файла, права доступа к файлу, количество жестких ссылок на файл, имя владельца, имя группы, размер файлаr (в байтах), временной штамп и имя файла. Типы файлов могут принимать следующие значения: - для обычного файла, d для каталога, b для блочного устройства, c для символьного устройства, l для символической ссылки, p для PIPE (FIFO) и s для гнезда (socket).
- -h - отображение размеров в человекопонятном (от human) виде (10M, 15K)
- -i - вывод inode элементов
- -t - сортировка по дате модификации (от старых к новым)/time
- -S - отсортировать по размеру (от больших к маленьким)/size
- -r - сортировка в обратном порядке
- -R - список с подкаталогами
- md5sum - Выводит или проверяет контрольные суммы Message Digest 5 (MD5)
- mkdir dir – создать каталог dir
- -p /path/to/three/{dir1,dir2,dir3} создание нескольких каталогов dir1,dir2,dir3 в каталоге /path/to/three/
- -m permission - указание прав permission на создаваемый каталог
- mv file1 file2 – переименовать или переместить file1 в file2. если file2 существующий каталог - переместить file1 в каталог file2
- nl - Сообщает о количестве строк в указанных файлах
- pwd – показать текущий каталог
- readlink - Выдает значение указанной символической ссылки
- rm file – удалить file
- -r – удалить каталог
- -f – удалить форсированно (без запроса)
- -i или --interactive - интерактивно подтвердить попытку удаления файла
- stat - Отображает статус файла или файловой системы
- touch file – обновить время доступа к файлу file или создать file, если его нет
-c
или--no-create
- не создавать файл, если его не существует.- -d или -t - изменить время на указанное (формат указания времени в man touch)
- more file – вывести содержимое file с возможностью прокрутки вверх/вниз
- less File - аналог more
- tee file - вывод данных, получаемых со стандартного ввода на стандартный вывод И в файл file. (команда называется "тройник")
- fuser file - идентифицирует (если без параметров - отображает PID) процессы, использующие файл file
- head file – вывести первые 10 строк file
Управление текстом
- cut file - выделение из файла file указанных последовательностей и отправка на стандартный вывод
- cat file – отображение содержимого file на стандартный вывод
- -E - отображение концов строк
- -n - нумерация строк
- tac file – отображение содержимого file на стандартный вывод в обратном порядке
- echo file - отображение содержимого file на стандартный вывод
- echo string > file запись строки string в файл file (при наличии в файле других строк, файл перезаписывается)
- echo string >> file ДОзапись строки string в КОНЕЦ файла file (при наличии в файле других строк, строка string дописывается в конец файла file )
- -e - интерпретировать управляющие символы, такие как (\n - новая строка,\t -горизонтальная табуляция и т.п.)
- expand - Конвертирует символы табуляции в пробелы
- rev file - Меняет в заданном файле порядок строк на обратный
- seq - Выдает последовательность чисел из указанного диапазона с указанным значением приращения
- shred - Удаляет указанные файлы, путем пере записывания на их место данных по сложным образцам, что усложняет восстановление удаляемых файлов
- shuf - Перемешивает строки текста
- sort - сортировка строк текстовых файлов по указанным параметрам
- -k - указание номера поля, по которому сортируем
- -t - разделитель
- -n - числовая сортировка, т.е. сравнение ведётся по числовому значению (используют совместно с параметром -b)
- -r - сортировка в обратном порядке
- -R - в произвольном порядке
- -u - исключение повторяющихся строк
- tail file – вывести последние 10 строк file
- -f – вывести содержимое file по мере роста, начинает с последних 10 строк
- tailf file - аналог tail -f
- wc File - печатает число строк, слов и байт в файле File
- -c, --bytes - байтов
- -m, --chars - символов
- -l, --lines - строк
- -L, --max-line-length - число символов в строе максимальной длины
- tr string1 string2- символьное преобразование символов из string1 в string2(echo mama | tr abcd ABCD)
- -s - замена повторяющихся символов на один
- -d - убрать из вывода символы (abcd)
- unexpand - Конвертирует символы пробелов в символы табуляции
- uniq - Удаляются все повторяющиеся копии уже имеющихся строк
Управление системой
- runlevel – вывести текущий " уровень выполнения
- chkconfig - информация о запускаемых сервисах на разных уровнях запуска для RedHat- подобных дистрибутивов
- --list - вывод всех установленных сервисов с уровнями запуска
- service on/off - включение - on или отключение - off запуска службы service на всех уровнях запуска
- --levels 23 service on/off - включение - on или выключение - off запуска службы service на всех уровнях запуска 23
- update-rc.d service default - добавление демона service в автоматическую загрузку на уровни выполнения по умолчанию для Debian подобных дистрибутивов
- ctrlaltdel hard или soft - Устанавливает для комбинации символов Ctrl+Alt+Del жесткую или мягкую перезагрузку (обычно используется в стартовом скрипте, например /etc/rc.local)
- init n - указание процессу init перейти на уровень выполнения n
- /etc/init.d/daemon command - (управление службами <a title="System V" href="http://www.k-max.name/linux/nachalo-etapy-zagruzki-os-linux-v-sxeme#init" target="_blank">системы инициализации SystemV</a>) выполнение команды command над демоном daemon (наиболее часто используемые команды: start, stop, status, restart, reload - запустить демон, остановить, перезапустить, проверить статус, перечитать конфигурационный файл соответственно)
- stty - управление настройками терминала
- -a - вывод всех текущих настроек
- sane - сброс настроек к настройкам по умолчанию
- lscpu - вывод информации о ЦП
- rtcwake - Используется для перевода системы в режим "сна", продолжающийся до тех пор, пока не настанет указанное время "проснуться"
- telinit n - аналог (точнее символьная ссылка на init) init
- <a name="upstart"></a>initctl - управление<a title="система инициализации upstart" href="http://www.k-max.name/linux/nachalo-etapy-zagruzki-os-linux-v-sxeme#upstart" target="_blank"> системой загрузки upstart</a>
- check-config - проверить конфигурационные файлы Upstart
- emit event - послать (эмитировать) событие event - upstart'у
- help - отображение справки по командам initctl
- list - отображение статуса задач
- start jobd - запуск задачи/службы jobd
- stop jobd - остановка задачи/службы jobd
- status jobd - отобразить статус задачи/службы jobd
- restart jobd - перезапуск задачи/службы jobd
- reload jobd - перечитать конфиг задачи/службы jobd
- reload-configuration - перечитать конфиги из /etc/init/
- show-config - отобразить конфигурационный файл (когда запускается, останавливается, на какие события реагирует)
- version - отобразить версию upstart
- init-checkconf /path/to/file.conf - проверить конфигурационный файл upstart - /path/to/file.conf
- start jobd/status jobd/stop jobd/restart jobd/reload jobd - аналог команд initctl start jobd и т.д. соответственно
- shutdown n - переключается на уровень выполнения 1 (однопользовательский режим) через n минут (можно ввести вместо цифр - now, тогда уровень сменится моментально без ожидания)
- -r переключается на уровень выполнения 6 (перезагрузка)
- -h переключается на уровень выполнения 0 (выключение)
- -c отмена запущенного переключения на какой-либо уровень выполнения.
- reboot - перезагрузка, аналог shutdown -r now
- halt - выключение, аналог shutdown -h now
- watch command - запуск команды command через некоторые промежутки времени и отображение ее вывода в полный экран
- -n sec - каждые sec-секунд
- <a name="crontab"></a>crontab file - создание таблиц планировщика Linux из файла file
- -u user - редактирование таблиц планировщика пользователя user
- -l - отображение текущих заданий из crontab
- -e - редактирование таблиц планировщика
- -r - удаление задания планировщика
- -i - запрос перед удалением заданий crontab
Управление печатью (CUPS)
- lpstat – отображение статуса заданий, классов и принтеров
- -a printer - отображение текущего статуса принтера printer
- -c class - отображение текущего статуса класса class
- -p printer - отображение текущего статуса принтера/очереди (включен или выключен) printer. Если не указан принтер, то отображается информация о всех принтерах.
- -d - отображение текущих очередей печати.
- lpr file - печать файла file на принтер по умолчанию (в новых версиях CUPS заменена на lp)
- lpinfo - отображение доступных устройств принтеров и драйверов
- lppasswd username - изменение пароля пользователя username в [ http://www.k-max.name/?p=2614 система печати CUPS ] в файл /etc/cups/passwd.md5
- -a username - добавление нового пользователя username
- -x username - удаление пользователя username
- lpoptions - управление настройками принтера и отображение настроек.
- lpadmin - настройка CUPS принтеров и класссов
- accept очередь - включение возможности принятия в очередь заданий
- reject очередь - отключение возможности приема новых заданий в очередь
- enable очередь - запуск очереди очередь
- disable очередь - остановка очереди печати очередь
- -с очередь - отмена обработки печати всех документов в очереди (аналог "очистить очередь")
- -r причина - указание причины очистки
Управление процессами
- bg number – список остановленных и фоновых задач/продолжить выполнение остановленной задачи в фоне, имеющей номер number
- fg number – выносит на передний план последние задачи
- n – вынести задачу n на передний план
- kill pid – убить процесс с id pid
- -TERM pid - попытаться завершить процесс с pid - сигналом SIGTERM (этот сигнал может быть обработан или проигнорирован программой).
- -KILL pid - Завершить процесс принудительно, убить процесс в независимости от его состояния сигналом SIGKILL (процесс не может проигнорировать сигнал)
- killall proc – убить все процессы с именем proc *
- lsof pid - просмотр открытых файлов, процессом с pid
- nice -n value script - изменение приоритета запускаемого процесса script на значение, равное value (может быть от -20 до 19, в порядке уменьшения приоритета, т.е. -20 - самый высокий)
- nohub <a class="b-pseudo-link">script </a>- разрешение запускаемому процессу script , быть устойчивому к закрытию (при выходе пользователя процесс продолжит свое выполнение)
- nproc - Указывает число дочерних процессов, имеющихся в данном процессе
- pgrep - Ищет процессы по их именам и другим атрибутам
- pidof proc1 proc2 - вывести PID всех запрошенных процессов
- ps – вывести ваши текущие активные процессы
- -a - связанные с конкретным терминалом, кроме главных системных процессов сеанса
- a - процессы, связанные с текущим терминалом, а также процессы других пользователей;
- x - процессы, отсоединённые от терминала (демоны, службы)
- -u - отображение пользователя (владельца процесса)
- aux - вывод всех процессов в системе
- lax - вывод всех процессов в системе (UID не преобразуется в имя пользователя)
- -ejH - Вывод процессов в виде дерева
- -С process -o col - вывод информации из колонки col о процессе process (col бывают следующие: USER - имя пользователя, PID, %CPU - % использования CPU, %MEM - % использования памяти, VSZ - виртуальный размер процесса, в Кб, RSS - объем используемой физической памяти, в Кб, TTY - идентификатор управляющего терминала, STAT - текущий статус процесса, м/б D - ожидание вв/выв, R - запущен, S - ожидание, T - остановлен, W - процесс выгружен на диск, X - процесс уничтожен, Z - зомби и др..., START - время запуска процесса, TIME - время ЦП для процесса, COMMAND - команда, запустившая процесс)
- -u user - отобразить процессы пользователя user
- pstree - команда отображает дерево запущенных процессов. (ИМХО-отличная программа, дает очень наглядное представление о запущенных процессах в системе)
- -a - отображение процессов с аргументами запуска командной строки
- -h - подсвечивает текущий процесс и его предков
- -u - показывает UID процесса. (Когда uid процесса отличается от uid родителя , то новый uid показывается после имени процесса ,заключенным в круглые скобки)
- pwdx - Сообщает о текущем рабочем директории процесса
- sysctl - Модифицирует параметры ядра в режиме реального времени
- top – показать все запущенные процессы в интерактивном режиме (с возможностью сортировки по загрузке ЦП/памяти/т.п.):
- h - справка о программе
- k - уничтожить процесс
- n - число отображаемых процессов
- u - сортировать по имени пользователя
- M - сортировать по объему ОЗУ
- P - сортировать по загрузке ЦП
- r - изменить приоритет выполнения
- q - выход
- renice -value PID- изменение приоритета запуЩЕННОГО процесса с PID=PIDна значение, равное value (может быть от -20 до 19, в порядке уменьшения приоритета, т.е. -20 - самый высокий)
chmod - Права доступа на файлы/папки
- chmod octal file– сменить права file на octal, раздельно для пользователя, группы и для всех, добавлением:
- 4 – чтение (r)
- 2 – запись (w)
- 1 – исполнение (x)
- Примеры:
- chmod 777 – чтение, запись, исполнение для всех
- chmod 755 – rwx для владельца, rx для группы и остальных.
- -R - назначение указываемых прав всем дочерним элементам
- chown user:group file – сменить владельцев file на user:group
SSH
- ssh user@host– подключится к host как user
- -p port – подключится на порт port
- ssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам
Поиск
- grep pattern files– искать pattern в files
- -r – искать рекурсивно pattern в dir
- command | grep pattern – искать pattern в выводе command
- -v - искать строки, не содержащие pattern (например можно найти все строки, не начинающиеся на комметарий и не пустые: grep -v '^#'| grep -v '^$')
- -i - без учета регистра букв
- -E - с интерпретацией регулярных выражений
- -l - листинг файлов, содержащих строку в имени
- locate file – найти все файлы с именем file
- find path file - поиск файла file в каталоге path
-path
- поиск по пути-name
- поиск по имени- -ipath или -iname - то есть с "i" - регистронезависимый поиск
-type
d или f или l - поиск по типу файла: 'f' для регулярных файлов, 'd' для каталогов и 'l' для символьных ссылок соответственно (другие типы - в man find)-size
n - поиск файла по размеру (n может быть как n, как +n (более n), как -n (менее n), а так же для указания единицы измерения: nc - для байт, nk - для килобайт, nb - блоков)-empty
- поиск пустых файлов-print
- вывод всего что найдено-ls
- вывод найденного аналогично командеls -lids
-exec command; -
выполняет командуcommand
для каждого файла (обязательно заканчивается ; ),-mtime n
- поиск файла по времени модификации-atime n
- поиск файла по времени доступа-daystart
- указание на отсчет времени от полуночи-mmin
n
find . -size -26c -size +23c -exec ls -l '{}' \;
- данный пример ищет файлы размером от 23 байт до 26 и с найденным выполняет команду ls -l.
find /folder -perm +4000
- данный пример ищет файлы с битом SUID в каталоге /folder.
Работа с переменными
- env - работа с переменными окружения (от environment - окружение), без параметров - вывод всех имеющихся
- peremennaya="znachenie" - присвоеное переменной peremennaya значения znachenie (кавычки желательно использовать на случай, если в переменной несколько подряд идущих символов пробела или табуляции)
- printenv - Выдает значения переменных среды окружения
- unset $peremennaya - удаление переменной
- readonly peremennaya - установка переменной значения "только для чтения", то есть запрет изменения значения переменной. (без аргументов - вывод всех переменных, помеченных только для чтения)
- export peremennaya - экспорт переменной peremennaya для родительских процессов
- set arg1 arg2 arg3 ... argn - установка позиционных переменных $1 $2 $3 ... $n на основании arg1 arg2 arg3 ... argn
- -a (allexport) - экспортирует все инициализируемые переменные
- -f (noglob) - указывает интерпретатору не развертывать имена файлов
- -n (noexec) - указывает интерпретатору развертывать команды, но не выполнять их
- -t (exit) - читает и выполняет одну команду, а затем прекращает работу
- -u (nounset) - возвращать ошибку при развертывании пустой переменной
- declare -atr +atr peremennaya - устанавливает (символ - минус) или снимает (символ + плюс) атрибуты atrу переменных (если без указания переменной - то вывод всех переменных с указанным атрибутом)
- -a - объявление переменной массивом
- -f - объявление переменной - именем функции
- -i - пометить переменную для хранения целых числовых значений
- -r - объявление переменной "только для чтения"
- -x - пометка переменной для экспорта
Системная информация
- date – вывести текущую дату и время
- [ммддччмм[гг]].сс - установка даты и времени (мм - месяц, дд - дата, чч - час, мм - минут, гг - год, сс - секунд)
- cal – вывести календарь на текущий месяц
- uptime – показать текущий аптайм
- uname – показать информацию о ядре
- -s - Показать имя ядра (информация выдается по умолчанию, если ни одна опция не указана)
- -n - Показать имя хоста.
- -r - Показать номер выпуска ядра. Эта опция часто используется с командами управления модулями.
- -v - Показать версию ядра.
- -m - Показать имя аппаратной платформы (CPU).
- -o - Показать имя операционной системы.
- -a - Показать всю возможную информацию.
- cat /proc/cpuinfo – информация ЦПУ
- cat /proc/meminfo – информация о памяти
- df – показать инф. о использовании дисков
- -t - указание типа ФС
- -h - в "понятном" виде
- -T - отображение типа ФС
- -i - отображение информации об inode
- -x fstype - исключение вывода по типу ФС
- du – вывести “вес” текущего каталога
- -s - с подкаталогами
- -h - в "понятном" виде
- -m - вывод в мегабайтах
- dmidecode - информация о железе, берется из API DMI (пакет pmtools)
- -t- указать тип устройства
- -t 17 - информация о памяти
- -q - вывод меньшей информации
- -t- указать тип устройства
- free – использование памяти и swap
- whereis file– отображение расположения файла file
- which app – отображает путь к команде app
- type app - аналог каманды which
- enable - вывод встроенных в интерпретатор команд
- lshw - обтображение списка устройств
- lsmod - список подключенный модулей ядра
- modprobe modulemane - добавления и удаления модулей ядра Linux
- modinfo modulename - информация о модуле modulename
- -F param - отображение только параметра param для модуля
Справочная информация
- man command – показать ман-страницу для command
- info command - показать info-страницу для command
- whatis command – поиск man-страницы для command и отображение информации об имени из соответствующей man-странице
- apropos command - поиск по ключевым словам в man-страниц и выводит те, которые содержат command(по существу, это аналог команды man -k, где ключ k - указывает на поиск в руководстве по ключевому слову)
- editor - отобразит имеющиеся в системе текстовые редакторы
Архивация
- bzcat/bzdiff/bzegrep/bzfgrep/bzgrep/bzless/bzmore - Запуск команды bzcat/bzdiff/bzegrep/bzfgrep/bzgrep/bzless/bzmore соответственно для файлов, заархивированных с помощью bzip
- tarcf file.tar files– создать tar-архив с именем file.tar содержащий files
- с - создать архив
- t - вывести содержимое архива
- r - дописать в архив
- x - распаковать архив
- j - использовать сжатие Bzip2 (*.bz2)
- z - использовать сжатие Gzip (*.gz)
- v - выводить отладочную информацию
- f - название файла архива
- gzip file – сжать file и переименовать в file.gz (без указания файла - сжатие с stdin)
- -l - отобразить содержимое архива
- -d - распаковать архив, исходный удалить
- zcat/zcmp/zdiff/zegrep/zfgrep/zgrep/zless/zmore - Запускает команду cmp для файлов, заархивированных с помощью gzip
- zcat file.gz - просмотр содержимого архива file.gz
- gunzip file.gz– распаковать file.gz в file
- -с - отправить вывод на stdout
Управление NFS
- showmount host - отобразить список хостов, которым разрешено монтировать эксп ортированные файловые системы на хосте host (без указания параметра host будет выведена информация с локальной системы);
- -a - вывести полную информацию об экспортированных иерархиях (хост/strong– вывести первые 10 строк fileempstree n - поиск файла по размеру (n может быть как n, как +n (более n), как -n (менее n), а так же для указания единицы измерения: nc - для байт, nk - для килобайт, nb - блоков) - каталог)
- exportfs – управление экспортированными каталогами
- -a - экспорт всех иерархий из /etc/exports, но не разэкспортирует удаленные элементы.
- -i - игнорирует файл /etc/exports и использует только параметры из командной строки.
- -o - задает опции экспорта (обычно используют с -i), например
exportfs -i -o ro hostname:/folder/subfolder # экспортирует файловую систему <em>/folder/subfolder</em> из локальной системы в систему <em>hostname</em> только для чтения (<em>ro</em>)
- -r - реэкспортирует элементы файла /etc/exports и удаляет неверные записи из /var/lib/nfs/xtab
- -u - разэкспортирует иерархию
- -v - "говорительный" режим )
- Дополнительно тут: Использование NFS
Сеть (DNS)
- ipcalc - калькулятор сети
- ethtool interface - отобразить физическую статистику интерфейса interface;
- ping host – пропинговать host и вывести результат
# # несколько примеров команды ping, выводящие локальное время ping -I 10.234.4.2 10.224.10.2 | awk '{if($0 ~ /bytes from/){print strftime()" *** "$0}else print}' ping -I 10.234.4.2 10.224.10.2 | while read pong; do echo "$(date) *** $pong"; done ping -I 10.234.4.2 10.224.10.2 | perl -nle 'print scalar(localtime), " *** ", $_'
- whois domain – получить информацию whois для domain
- traceroute host - трассировка маршрута до определенного хоста
- <a name="ifconfig"></a>ifconfig eth0 - отображение/настройка параметров сетевого интерфейса etho (либо другого, если без указания интерфейса - отобразит конфигурацию всех интерфейсов)
- inet ip.add.re.s - задание ip адреса интерфейса (TCP/IP)
- mask xxx.xxx.xxx.xxx - задание маски подсети интерфейса
- broadkast xxx.xxx.xxx.xxx - задание широковещательного адреса интерфейса
- up - запустить интерфейс
- down - остановить интерфейс
- -a - отображение всех железных интерфейсов (в том числе и не поднятых и поднятых)
- <a name="route"></a>route - отображение таблицу маршрутизации
- -n - не резолвить имена в адреса
- add destination gw gateway metric metric - добавить маршрут (add) для destination (адрес назначения), IP адрес шлюза (gw) - gateway, с метрикой metric
- add -net -указание добавить маршрут для сети
- add - host -указание добавить маршрут для хоста
- del destination - удалить маршрут с назначением destination
- mtr host - отображение статистики трассировки до хоста host (красивее чем трасероут <img src="http://www.k-max.name/wp-content/plugins/qipsmiles/smiles/smile.gif" alt=":)" title=":)"> )
- netcat host port - просмотр, кто слушает порт
- nc - TCP/IP швейцарсий нож <img src="http://www.k-max.name/wp-content/plugins/qipsmiles/smiles/smile.gif" alt=":)" title=":)">
- -h - отобразить помощь
- -l port - прослушивать локальный порт port для входящих соединений.
- netstat -отображение статистики сети
- -r - таблица маршрутизации
- -n - без разрешения IP адресов в имена и сетевых портов в названия
- -a - состояние всех (во всех состояниях) соединений на локальной машине
- -t - статистика по протоколу TCP
- -u - статистика по протоколу UDP
- -i - отобразить статистику сетевых интерфейсов
- -l - просмотр сокетов, слушающих (LISTEN) соединения (ожидающих соединения)
- -p - отобразить имя программы и PID (process ID), с которой взаимодействует сокет
- примеры:
[root@proxy ~]# netstat -ai Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 36017870 0 31 0 42781870 0 0 0 BMRU eth1 1500 0 43918739 0 0 0 34393308 0 0 0 BMRU eth2 1500 0 3220106 0 0 0 3666398 0 0 0 BMRU lo 16436 0 15429640 0 0 0 15429640 0 0 0 LRU ppp0 1246 0 14047 0 0 0 1576 0 0 0 MOPRU ppp1 1246 0 1329 0 0 0 1941 0 0 0 MOPRU
- nmap host - просканировать порты на хосте host
- -p ports - просканировать указанные порты
- -o - определить ОС при сканировании порта
- tcpdump - анализатор заголовков пакетов
- -n - не преобразовывать IP в DNS
- -i interface - указать какой интерфейс слушать
- port nn - указать вывод только nn порта
- -w file - сохранять вывод в файл file
- wget file – скачать file
- -c – продолжить остановленную закачку
- <a name="dns"></a>dig domain – получить DNS информацию о domain
- -x 1.2.3.4 – реверсивно искать данные о хосте 1.2.3.4 (то есть найти данные для 4.3.2.1.in-addr.arpa.)
- @ns.server - источником информации о DNS - использовать ns.server
- SOA|MX|A|NS - указать тип получаемой записи
- +short - получение коротких отчетов
- +nocomments - отключить комментарии в отчете
- +trace - включение трассировки поиска запрашиваемого значения
- -f file - запуск построчно команды dig с параметрами, указанными в каждой строке файла file
- named-checkzone zone_name /file/name/zone - проверяет синтаксис файла зоны /file/name/zone
- named-checkconf- проверяет синтаксис файла named.conf
- -z - проверка named.conf с проверкой корректности файлов зон
- nslookup- интерактивные запросы к DNS
- host - отобразить основные (A и MX) записи хоста host
- -debug - включить режим отладки
- -type=SOA|MX|A.... - вывод указанного типа ресурсной записи
- host ns.server - получить информацио о хосте host с DNS сервера ns.server
- host domain - получить DNS информацию о домене domain
- -a - вывести все записи зоны
- -d - отладка
- -t A|MX... - указание типа ресурсной записи
- -v - вывод подробной информации
- host ns.server - узнать информацию о хосте host с DNS сервера ns.server
Управление программным обеспечением
- Установка из исходников:
[mc-sim@ASUS /]$ wget http://www.site.com/packege.tar.gz # получаем архив packege.tar.gz с сайта http://www.site.com/ [mc-sim@ASUS /]$ tar xzvf packege.tar.gz # распаковываем архив packege.tar.gz [mc-sim@ASUS /]$ cd packege # переходим в каталог с распакованным архивом [mc-sim@ASUS /]$ less README или INSTALL # читаем файл README или INSTALL, обычно в них описан HOWTO INSTALL # процесс установки, если нет, то выполняем команды: .... [mc-sim@ASUS /]$ ./configure [mc-sim@ASUS /]$ make [mc-sim@ASUS /]$ make install
- <a name="apt"></a>apt-get- вывод информации о команде управления пакетами apt-get
- install pakage - установка пакета pakage
- remove pakage - удаление пакета pakage
- --purge - удаление вместе с пакетом конфигурационных файлов
- check - проверка дерева зависимостей пакетов
- update - обновление локального списка пакетов
- upgrade - обновление всех пакетов, не требующих инсталляции (обновляются только те, которые установлены и те, которые зависят от уже установленных)
- dist-upgrade - обновление пакетов системы с инсталляцией новых пакетов (обновляются все пакеты, в том числе и не инсталлированные)
- apt-cachesearch pakage - выполняет полный поиск текста pakage по всем доступным файлам пакетов по заданному шаблону. Команда просматривает имена пакетов и описания, для поиска определенной строки, а также выводит имя пакета и его краткое описание.
- <a name="ldd"></a>ldd /path/program - вывести список библиотек общего доступа от которых зависит программа /path/program
- strace program - трассировка системных вызовов команды program. (очень полезна для отслеживания попыток программы открыть конфиг/библиотеку и т.п.)
- -e write - указать параметр фильтрации, в данном примере - отслеживать системные вызовы write (часто используется open)
- -f - отслеживать системные вызовы потомков (желательно использовать)
- -o file - вывод трассировки в файл file
- ldconfig - пересоздание<a title="конфигурационные файлы ld.so" href="http://www.k-max.name/linux/fajlovaya-sistema-linux-i-struktura-katalogov#ldso" target="_blank"> кэша библиотек общего доступа</a>
- dpkg -i pkg.deb– установить (или обновить) пакет (Debian)
- -r (--remove) pkg.deb - удаление пакета pkg.deb с сохранением конфигов
- -P (--purge) pkg.deb - удаление пакета pkg.debс удалением конфигов
- -l (--list) - отобразить установленные в системе пакеты
- --search /bin/file - узнать какому пакету принадлежит файл
- --status pkg или --info pkg - показать информацию о пакете pkg
- --contents pkg.deb - показать состав пакета pkg.deb
- netselect-apt- выбор быстрых зеркал для менеджера пакетов
- stable|testing|unstable|experimental|woody|sarge|etch|sid - указать тип версии репозитория.
- -o, --outfile file - указать выходной файл с репозиторием
- -f - использовать FTP репозитории вместо http.
- rpm - (без параметров) вывод версии пакетного менеджера
- -i pkg.rpm – установить пакет (RPM) pkg.rpm
- -v - вывод информации на экран при установке/удалении
- -q- вывод краткой информации о пакете (версия)
- -a - вывод информации о всех установленных пакетах
- -f file - Запросить пакет, которому принадлежит файл file
- -i pkg.rpm - вывод полной информации об установленном пакете pkg.rpm
- -l pkg.rpm- Запросить список файлов в пакете pkg.rpm
- -ivh - установка пакета с выводом доп инфо
- -Uvh - обновление имеющегося пакета с выводом доп инфо
- -e - удаление пакета
- -qpl pkg.rpm - вывод информации о файле пакета pkg.rpm
- -R - Запросить список пакетов, от которых зависит этот пакет
- --initdb - инициализация базы данных RPM (создает структуру файлов в каталоге /var/lib/rpm, содержащих информацию о пакетах, зависимостях и т.п.)
- --nodeps - не обращать внимания на зависимости
Управление пользователями и группами
- last - Показывает, какие пользователи последними входили в систему (и покидали ее), выполняя для этого поиск в файле /var/log/wtmp в обратном порядке; также показывает информацию о загрузках системы, ее остановках и изменениях ее уровней запуска
- lastb - Показывает неудачные попытки входа в систему, которые записаны в файле /var/log/btmp
- w – показать пользователей онлайн
- whoami – имя, под которым вы залогинены.
- finger user@host – показать информацию о user (без указания пользователя - выведет список пользователей, залогиненых в системе) на хосте host, утилита не чувствительна к регистру символов
- write user [terminal] - начать сеанс общения с пользователем user на терминале terminal
- talk user@host - чат с пользователем user на компьютере host
- wall message - разместить сообщение message на всех терминалах.
- mesg y/n - включение - y и выключение - n возможности принимать сообщения на консоли
- su user - создание оболочки (подоболочки текущей оболочки) с правами пользователя user (без указания пользователя - вызывается оболочка root)
- -, -l, --login - все 3 параметра имеют одно значение - загрузить окружение вызываемого пользователя (выполняются все стартовые сценарии и подгружаются переменные окружения вызываемого пользователя)
- -с command - выполнить команду command с правами суперпользователя и "понизить" права в исходные после завершения команды.
- useradd user - добавление нового регистрационного имени пользователя user в системе
- -g group - задает основную группу (primary group) для нового пользователя. По умолчанию используется стандартная группа, указанная в файле /etc/default/useradd.
- -d dir - доманий каталог (home directory) нового пользователя. По умолчанию используется $HOMEDIR/user
- -s shell - полный путь к программе (шеллу), используемой в качестве начального командного интерпретатора для пользователя
- -m - Создает начальный каталог нового пользователя, если он еще не существует. Копирует скелетные файлы и другие каталоги из /etc/skel в домашний каталог.
- -b - Базовый каталог по умолчанию, в котором создаются домашние каталоги пользователей. Обычно это /home, а пользовательские каталоги — /home/$USER.
- -c "text text" - Текстовая строка для описания id, содержащая, например, полное имя пользователя.
- -e YYYY-MM_DD - Дата, когда учетная запись потеряет силу или будет заблокирована.
- -G gr1,gr2,gr3 - Список дополнительных групп, которым принадлежит пользователь.
- -o - Позволяет создать пользователя с неуникальным id.
- -u - Неотрицательное цифровое значение id пользователя, которое должно быть уникальным, если не определено иначе опцией -o. По умолчанию используется самое маленькое значение, не меньше, чем UID_MIN, причем больше, чем id любого из существующих пользователей.
- usermod user - изменение настроек пользователя с именем user в системе
- аналогичны всем вышеуказанным для useradd
- -L - блокировка учетной записи
- -U - разблокировка учетной записи
- userdel user - удаляет пользователя user из системы
- -r - удаление домашнего каталога пользователя
- users - Выдаются имена пользователей, которые в текущий момент зарегистрированы в системе
- groupadd group - добавление (создание) новой группы group в системе
- -f - Выйти со статусом успешного выполнения, если группа уже существует. Удобна при написании скриптов, когда нет необходимости проверять, существует ли группа, прежде чем пытаться ее создавать.
- -g - Задать id группы вручную.
- -o - Разрешить группу с неуникальным id.
- groupmod group - изменение информации о группе group в системе
- -n group2 задание нового имени group2
- groupdel group - удаление группы group из системы
- passwd user - изменяет/устанавливает пароль пользователя user
- -l - блокирование учетной записи
- -d - удаление пароля учетной записи (блокирование)
- -f - установка даты прекращения полномочий
- -n - минимальное время действия пароля в днях
- -x - максимальное время действие пароля в днях
- -w - число дней появления предупреждения об окончании действия пароля
- -i - число дней, после которых пароль потеряет силу и учетка заблокируется.
- -S - вывод сообщения о статусе пользователя
- gpasswd group - изменяет/устанавливает пароль группы group (Наличие пароля группы позволяет пользователям временно войти в группу при помощи команды newgrp, если им известен пароль группы.)
- id who - просмотр информации о пользователе/группе who (принадлежность к группам, UID, GID)
- ulimit - ограничение пользовательских ресурсов:
- -a - отображение всех возможных ресурсов
- -f - ограничение размера файла
- -t - процессорное время
- ...
Управление блочными устройствами (работа с разделами на жестком диске)
- fdisk /dev/block_device- интерактивное редактирование таблицы раздела блочного устройства /dev/block_device
- -l - отображение таблицы разделов устройства.
- badblocks - Поиск плохих блоков на устройстве (обычно на дисковом разделе)
- blkid /dev/sda1 - определяет и выдает атрибуты блочного устройства (без параметров - атрибуты всех блочных устройств)
- dumpe2fs - Выдает информацию о суперблоке и группе суперблоков файловой системы, присутствующей на указанном устройстве
- e2freefrag - Сообщает информацию о фрагментации свободного пространства
- e2image - Используется для сохранения в файле данных, критичных для файловой системы ext2
- e2initrd_helper - Выдает тип файловой системы для указанной файловой системы; указывается имя или метка устройства
- e2label - Отображает или изменяет метку файловой системы в файловой системе ext2, присутствующей на заданном устройстве
- e2undo - Выдает информацию, касающуюся отмены действий, из журнала undo_log файловой системы ext2/ext3/ext4, расположенной на устройстве. Может использоваться программой e2fsprogs для отмены неверно выполненной операции.
- filefrag - Сообщает о том, насколько сильно может быть фрагментирован конкретный файл
- findfs LABEL=label или UUID=uuid Поиск файловой системы по метке или по универсальному уникальному идентификатору Universally Unique Identifier (UUID)
- logsave - Сохраняет данные, выдаваемые командой, в журнальном файле.
- lsattr - Выдает списки атрибутов файлов второй расширенной файловой системы.
- mkfs -t type /dev/block_device - создание файловой системы type на устройстве /dev/block_device
- -L - указание метки тома
- существуют аналоги команды, которые позволяют не использовать опцию -t, аналоги можно посмотреть командой:
ls /sbin/mk*
- e2labael /dev/block_device newlabel - задание метки тома newlabel для устройства /dev/block_device
- tune2fs /dev/block_device newlabel - изменение параметров ФС ext2/ext3
- -j - добавление журналирования для ext2 (преобразование в ext3)
- mkswap /dev/block_device newlabel - создание раздела SWAP (раздела подкачки на устройстве /dev/block_device< newlabel)
- swapon - подключение (монтирование) раздела подкачки
- swapoff - отключение (размонтирование) раздела подкачки
- fsck /dev/block_device - проверка и исправление ФС на устройстве /dev/block_device или перечисленных в /etc/fstab и имеющих в поле pass, значение отличное от 0. С увеличением числа - уменьшается очередность сканирования. То есть поле pass со значением 1 будет проверено первым, со значением 2 - вторым и т.д.
- -AR - проверка всех файловых систем, отмеченных для проверки в /etc/fstab (A), кроме корневой (R)
- -a - автоматическое подтверждение всех запросов на исправление системы
- -с - проверка всех сбойных блоков
- -v - вывод текстовых сообщений во время проверки
- у команды есть аналоги для каждого типа ФС, аналоги можно просмотреть командой:
ls /sbin/*fsck*
- mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sda[5-8]- создание RAID массива на устройстве /dev/md0, уровня 5, из 3х дисков, c одним hot spare, в массив включить файловые системы на диске /dev/sda - с 5 по 8.
- -f /dev/sdaN - пометить раздел /dev/sdaN сбойным
- -r /dev/sdaN - пометить раздел /dev/sdaN извлеченным
- -a /dev/sdaN - добавить раздел /dev/sdaN в массив
- mount device dir - монтирование/подключение файлового устройства device в каталог dir (запуск без параметров выводит список уже смонтированных устройств)
- -a - монтирование всех файловых систем, указанных в /etc/fstab (включая те, которые имеют параметр noauto)
- -t fstype - указание типа файловой системы (ntfs, nfs, ext3 и т.п.)
- -h - помощь
- -r - монтирование в режиме только чтения
- -o parametr=znachen- устанавливает параметры монтирования:
- conv=auto - автоконвертирование текста их формата MSDOS в UNIX (замена символа конца строки CR-LF на LF)
- ro - монтирование в режиме только для чтения
- umount dir/mount_point - размонтирует файловые системы
- -a - размонтирование всех файловых систем, указанных в /etc/fstab, кроме корневой
- quotacheck - проверка установленной квоты на разделах
- quotaon - установка квот на разделах
- quotaoff - отключение квот на разделах
- edquota - отключение квот на разделах
- partprobe /dev/device - перечитать таблицу разделов устройства /dev/device (обычно используется после внесения изменений в таблицу разделов командой fdisk, если ядру не удалось это сделать автоматом)
- uuidd - Демон, используемый библиотекой UUID для создания безопасных и гарантированно уникальных идентификаторов UUID
- uuidgen - Создает новые идентификаторы UUID. Каждый новый идентификатор UUID может обоснованно считаться уникальным среди всех идентификаторов UUID, созданных как на локальной машине, так и на любых других машинах, как в прошлом, так и в будущем.
- resize2fs /dev/раздел размерM - изменение размера раздела /dev/раздел до размера размерM(в мегабайтах)
- -p - выводить информацию
На сегодня это все. Еще хочу дать ссылочку на отличную шпаргалку, как говориться мастхэв, распечатал и повесил на стенку рядом с монитором:[ http://www.k-max.name/wp-content/uploads/2010/06/Linuxcommand.pdf" Команды Linux] Нашел ее [ http://fosswire.com тут ]
С Уважением, Mc.Sim!
Решение частых проблем
[1]http://www.opennet.ru/base/sys/bash_tips.txt.html
Потоковый редактор SED
[2]http://linuxgeeks.ru/sed.htm
Неплохая шпаргалка по командам Linux
Еще одна хорошая шпаргалка с примерами
Полезный портал с примерами
Запуск Xorg приложений из ssh
ssh -X user@host.ru имя программы например iceweasel
Автозапуск приложений из xorg
ставим icewm
в /etc/rc.local вставляем
su user -c "startx"
А в USER$/icewm/autostart пишешь свою программу (/bin/bash)
Linux low level format - LLFormat
Пример низкоуровнего форматирования носителя:
dd if=/dev/zero of=/dev/sdX
Снятие и Восстановление загрузочной области утилитой dd
команда снятия загрузочной области:
dd if=/dev/sda of=bootsect.bin bs=512 count=1
восстановление загрузчика:
dd of=/dev/sda if=bootsect.bin bs=512 count=1
Подавление всех сообщений в том числе и ошибок
$ ls >myfile.txt 2>myfile.err
или
$ ls 2>/dev/null
At или Выполнение, останов и повторный запуск процессов
Создаем сервер USB Over IP на базе Linux
Довольно долго мне приходилось сталкиваться с ситуацией, при которой мне нужно было продолжать использовать физический сервер, хотя почти вся инфраструктура виртуализирована. Причиной этому было отсутствие подддержки USB устройств в самых разнообразных платформах виртуализации. В частности я использую Xen, а на сервере, который я хотел бы виртуализировать должен быть подключен USB ключ.
Конечно можно использовать аппратное оборудование, например USBoverIP, однако оно стоит значительных денег. И вот наконец решение найдено. Я обнаружил отличный бесплатный проект , доступный по этому линку - http://usbip.sourcefrge.net/
С помощью него можно преврать Linux систему в USB сервер, обслуживающий USB девайсы через IP для клиентов как под управление Linux, так и Windows.
Настройки сервера
1- Скачайте последний пакет по ссылке http://downloads.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip?use_mirror=ignum
Я тестировал все под Ubuntu Karmic, поэтому мне необходимо было выполнить следующую команду:
usbip:~$ sudo aptitude install usbip
Затем необходимо загрузить следующие модули для возможности контролировать USB порты.
usbip:~$ sudo modprobe usbip usbip:~$ sudo modprobe usbip_common_mod
Теперь запустим usbip в качестве системного демона:
usbip:~$ usbipd -D Bind usbip.ko to a usb device to be exportable! usbip:~$
Это означает что все идет по плану и нам необходиом выбрать порт, который будет расшариваться.
1- Подключите USB устройство к компьютеру
2- Выполните команду
lsusb
Для поиска соответствующего индентификатора Vendor/Device ID, который имеет следующую форму:
Bus XXX Device YYY: ID VendorID:DeviceID Know that to find your favourite hardware ID, you can locate its possition on the BUS. Just match the ID with the result of usbip server check:
usbip:~$ sudo usbip_bind_driver --list busid 1-6 (0c45:63ee) 1-6:1.0 - > uvcvideo 1-6:1.1 - > uvcvideo
Из этой команды нам становиться известне bus-ID, указывающий на USB устройство. В данном случае это "1-6".
Теперь подключаем устройство к серверу:
usbip:~$ sudo usbip_bind_driver --usbip 1-6
После выполнения данной команды система будет передавать данные о USB устройстве с вашей системы удаленным клиентам.
Настройки клиентов
- Клиент MS Windows
Скачайте zip версию клиента по ссылке http://ignum.dl.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip
Распакуйте её и выполните два простых шага.
Первое:
В архиве есть файл "bus.inf", который вам необходимо установить как "Generic system device" в своей системе.
Второе:
Выполните следующую команду из командной строки:
path-to-usbip:> usbip.exe -l <server-ip>
В результате выполнения этой команды вы увидите bus-ID, найденные на сервере.
Теперь подключите устройство следующей командой:
path-to-usbip:> usbip.exe -a <server-ip> USB-ID ** USB-ID в нашем случае 1-6.
Все!!! Вы увидите новое USB устройство, обнаруженное вашей системой.
- Клиент Gnu/Linux
В качестве клиента я тестировал дистрибутив Ubuntu Karmic
Подобно настройке серверной части необходимо выполнить команду:
$ sudo apt-get install usbip
Загрузите модуль "vhci-hcd":
$ sudo modprobe vhci-hcd
Теперь вы можете опросить сервер на наличие расшаренных USB устройств:
$ sudo usbip -l <server-ip>
А потом и подключить нужное устройство следующей командой:
$ sudo usbip -a <server-ip> X-Y
Настройка dns сервера
устанавливаем необходимые пакеты:
apt-get install resolvconf
только после этого ставим bind9 во избежание конфликтов...
apt-get install bind9
теперь сразу прописываем необходимые настройки для правильной работы служб:
editor /etc/default/bind9
изменяем параметр на указанный ниже:
RESOLVCONF=yes
дальше изменяем параметр dhcpclient
editor /etc/dhcp/dhclient.conf
добавляем:
prepend domain-name-servers 127.0.0.1;
перезапускаем службы:
/etc/init.d/bind9 restart ifdown eth0 ifup eth0
для внутренней сети в настройках /etc/network/interfaces
пропишите dns-nameservers 127.0.0.1
пример:
auto eth0 iface eth0 inet static address 10.10.1.1 netmask 255.255.255.0 network 10.10.1.0 broadcast 10.10.1.255 dns-nameservers 127.0.0.1 dns-search home.local
Восстановление удаленных файлов на ext3/ext4
Команды проверки наличия сети
для всех сетевых карт:
ip link
или
mii-tool
опреление настроек сети:
ifconfig route
Утилиты контроля состояния трафика и не только для сервера
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).
top
Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.
atop
Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.
В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).
Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
htop
В отличие от atop, htop не собирает статистику и просто показывает текущее состояние. Второе яркое отличие — нортоноподобная панелька с подсказками кнопок снизу и возможность «навигации» по списку процессов.
Поддерживает выделение процессов и выполнения над ними групповых операций (впрочем, с форк бомбой им не справиться).
Общей статистике по системе показыват мало (зато с шкалой а-ля прогресс-бар), зато имеет обширнейшие инструменты для анализа процессов, включая баловство с скедулингом (приоритеты, affinity), просмотр списка открытых файлов, strace и массу мелких, но приятных фич, таких как контекстный поиск по имени процесса, режим «слежения» за процессом, быстрые операции с процессом и т.д.
iotop
Специализированная утилита для анализа потребления дисковой полосы. К сожалению, не показывает иопсы (это вообще возможно?) Благодаря показу kernel threads способен указать на kcopy/swapper/kflush как источник хруста винта (чего не может atop). Заодно показывает общую загруженность IO системы в Мб/с (чего так же не может atop). Довольно быстрый.
iftop
Опять же, специализированная утилита, позволяющая наблюдать за трафиком в реальном времени. Требует очень рутовых прав и pcap, т.к. работает почти аналогичо tcpdump'у. Показывает загруженность интерфейса (поддерживается только один интерфейс в одной копии), направления трафика и интенсивность трафика.
На средне-загруженном сервере, который внезапно начал жрать инет позволяет очень быстро найти направление, в которое идёт больше всего трафика (в любую сторону). К сожалению, не показывает распределение трафика по процессам.
powertop
Специализированная (ага, снова) утилита от intel для мониторинга потребления мощности (электрической мощности!) разными процессами. В реальности никаких ваттов не показывает, а показывает время, затраченное на обслуживание процессором. Уникальна тем, что показывает прерывания и прочие события ядра на одном уровне с процессами (что позволяет находить нетривиальные ситуации перегрузки сервера и даже определять, от какой железки это исходит). При равной нагрузке позволяет оценить, чей драйвер шустрее работает.
Кроме того, во вкладке device stats позволяет оценить степень загруженности устройства (точнее, драйвера устройства). Для сетевых карт (включая виртуальные, типа tun) показывает pps (packets per seconds).
Во вкладке idle status показывает распределение состояний процессора (C1, C2, C3), что весьма полезно при выяснении «батарейка дохлая или что-то не так с системой?» на ноутбуках.
itop
Ну очень специализированная утилита для мониторинга прерываний (настоящих прерываний, идентификацией их по номеру).
kerneltop Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.
dnstop
Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.
Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.
jnettop
Почти клон iftop, однако имеет забавный режим, когда может слушать соседей и показывать top по их трафику. Не очень работает в эпоху коммутаторов.
Ещё умеет агрегацию адресов (так, чтобы показывать их трафик одной строкой).
sntop
Замечательная штука для скринсейвера или публичного монитора — по конфигу рассылает пинги и показывает, если какой-то хост лёг. В принципе, в рабочих условиях при настроенном конфиге позволяет быстро оценить состояние не очень большого парка серверов (запустили — и сразу красным видно, кто лежит).
latencytop
Я бы с интересом на него посмотрел, но оно требует особого конфига ядра…
xrestop
Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера).
slabtop
Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.
Software specific
apachetop
Не столь полезен, как хотелось бы, показывает статистику ответов на запросы. Никакой магии, просто читает логи апача.
sqtop
Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шариться.
pg_top
Пакет в debian почему-то называется ptop. Мониторит загрузку postgresql.
mytop
Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане) выпилен в районе lenny -> squeeze.
xentop
Мониториг доменов xen'а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top'ов, не влазящий в 80 столбцов при выводе.
Список топов, которые я глазами не посмотрел:
hatop — мониторинг haproxy virt-top — мониторинг за работой libvirt mctop — мониторинг состояния memcached perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.
offTOP
Сначала ложные топы кратко:
gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик.
ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача.
libgtop — библиотека для мониторигна производительности
nload — консольный монитор сетевой активности, в отличие от обычных top'ов не выводит рейтинг, а рисует текстовый график.
А потом настоящие топы без уважительного суффикса 'top' в названии.
nethogs
Отображает сетевой трафик от конкретных приложений.
iptstate
Монитор contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra, но удобнее (спасибо за наводку тов. merlin_rterm).
Опредление свободной памяти и железа
- утилиты:
inxi top htop atop free iotop lshw
aptitude
Краткая справка Debian администратора
Основное и общеизвестное
Получение информации о новых/обновлённых пакетах
sudo aptitude update
Обновление
sudo aptitude safe-upgrade
Поиск пакета по именам пакетов
aptitude search key_word
Поиск пакета по точному названию
aptitude search "^name$"
Поиск по описанию
aptitude search "?description("key_word")"
Информация о пакете
aptitude show package_name
Установка
sudo aptitude install package_name
Удаление
sudo aptitude remove package_name
Полное удаление (вместе с конфигами)
sudo aptitude purge package_name
Очистить кэш загруженных пакетов (освободить место)
aptitude autoclean # удалятся только пакеты неактуальных версий aptitude clean # очистится весь кэш
Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D)
sudo dpkg -i /path/to/package.deb
Для получения доп информации
man aptitude sudo aptitude install aptitude-doc-en
и смотрим документацию (/usr/share/doc/aptitude/html/en/index.html), кому быструю справку по поисковым шаблонам, тому сюда — /usr/share/doc/aptitude/html/en/ch02s04.html. Если лень ставить доку, то в сети она есть. Вводная на Debian Wiki: wiki.debian.org/Aptitude
А теперь то что не очевидно или требует полного прочтения документации
1. Как после update посмотреть какие пакеты будут обновлены?
aptitude search ?upgradable
также можно юзать (если поставить)
sudo daptup
но после его установки точно также будет себя вести и обычный update
2. Как узнать что изменилось в пакетах которые будут обновлены? Можно пробовать
sudo aptitude changelog package_name
для каждого пакета. Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить
sudo dpkg-reconfigure apt-listchanges
3. Что делать если обновление что-то поломало и нужно откатиться? Отката нет, можно попробовать найти предыдущую версию пакета
sudo aptitude version package_name
и установить её
sudo aptitude install package_name=version
4. Как найти все пакеты установленные вручную? есть вариант команды (aptitude search '~i!~M'), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов
/var/log/aptitude (+ ротированные куски) /var/log/installer/initial-status.gz /var/log/dpkg.log (+ ротированные куски)
но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить
5. Как посмотреть список файлов в пакете? если пакет установлен
dpkg -L package_name
для любых пакетов поставить apt-file и
apt-file list package_name
6. Как посмотреть какому пакету принадлежит файл?
dpkg -S file_name
7. Как удалить все пакеты, где есть key в названии пакета?
sudo aptitude purge ~ikey
8. Как удалить оставшиеся конфиги от удалённых пакетов?
sudo aptitude purge ~c
9. Как найти пакет пакет, в котором содержится файл lib.so:
apt-file search lib.so
10. Как сконвертировать rpm пакет в deb?
alien --to-deb /path/to/file.rpm
11. Как найти список установленных ядер?
dpkg --list linux-* | grep ii
12. Как установить пакет из testing или experimental? На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть
sudo aptitude -t testing package_name
или
sudo aptitude package_name/testing
13. Как удалить метапакет, но оставить одну из зависимостей? придётся почитать документацию про ключ unmarkauto или глянуть сюда.
14. Как узнать что попало в файловую систему мимо системы управления пакетами? Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт
sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp
15. Какие есть дополнительные репозитории? Debian — wiki.debian.org/UnofficialRepositories Ubuntu — множество всяких PPA
16. Что есть ещё?
apt-cdrom apt-spy auto-apt. заметка на хабре apt-key apt-add-repository
Некоторые вещи умеет только apt-get Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.
17. Как найти пакеты зависящие от данного
apt-cache rdepends package_name
также может пригодится
aptitude why package_name
mc
Структура
Панели каталогов
После первого запуска mc сам собой возникает вопрос: «Куда коней запрягать?» Чтобы приручить к себе панели, понадобятся следующие комбо-удары:
Tab, Ctrl + i сменить текущую (активную) панель Insert, Ctrl + t отметить файл либо снять отметку Alt + g Alt + r Alt + j подсветка верхнего, среднего или нижнего файла из числа отображаемых на панели Alt + t переключить режим отображения Ctrl + \ показать «Справочник каталогов» + выбрать (отметить) группу файлов по регулярному выражению \ снять отметку с группы файлов Alt + o если выделен каталог, установить его текущим в неактивной панели. Иначе, установить родительский каталог текущим. Alt + i текущий каталог активной панели станет текущим каталогом неактивной панели Alt + y к предыдущему каталогу из истории перемещения Alt + u к следующему каталогу из истории перемещения Alt + H отображает историю перемещения по каталогам Alt + e поменять кодировку панели Alt + . отобразить скрытые файлы Alt + , расположить панели вертикально/горизонтально Ctrl + u поменять панели местами
Разные команды
Итак, худо-бедно жонглировать файлами и каталогами научились. Пора взяться за права и обязанности владельцев, попутно наблюдая за другими фокусами:
Ctrl + l перерисовать экран Ctrl + x c поменять права (chmod) для отмеченных файлов Ctrl + x o поменять владельца (chown) для отмеченных файлов Ctrl + x l создать жёсткую ссылку Ctrl + x s создать абсолютную символическую ссылку Ctrl + x v создать относительную символическую ссылку Ctrl + x i переводит пассивную панель в режим «Информация» Ctrl + x q переводит пассивную панель в режим быстрого просмотра Ctrl + x ! меню → «Критерий панелизации» Ctrl + x h добавить имя каталога в «Справочник каталогов» Alt + ! меню → «Просмотр вывода команды» Alt + ? окно «Поиск файла» Alt + c окно «Быстрая смена каталога» Ctrl + o скрыть/показать панели Ctrl + Space подсчёт размера каталога Ctrl + r перечитать содержимое каталога Ctrl + x j показать фоновые задания Ctrl + x d сравнить каталоги Ctrl + x, Ctrl + d сравнить файлы Shift + F6 переименовать файл
Быстрый поиск
Здесь могла быть реклама гугла с настоящим контекстом, но Ларри до сих пор не отреагировал на моё деловое предложение.
Если серьёзно, быстрый поиск «на лету» выделяет файлы по первым символам введённого имени.
Ctrl/Alt + s режим быстрого поиска
Командная строка оболочки
Ниже представлены сочетания, призванные сократить количество телодвижений, связанных с вводом команд в командной строке.
Ctrl/Alt + Enter копирует подсвеченное имя файла в командную строку Alt + Tab пытается выполнить операцию Завершение ввода Ctrl + x t, Ctrl + x Ctrl + t копирует в командную строку имена помеченных файлов из активной/пассивной панели Ctrl + x p, Ctrl + x Ctrl + p копирует в командную строку имя текущего каталога из активной/пассивной панели Ctrl + q вставить символы, которые интерпретируются mc (пример: +) Alt + p, Alt + n перемещение по истории команд Alt + h выводит историю текущей строки ввода (историю команд) Ctrl + V вставка из буфера обмена
Пример монтирования папки в папку
- полезно при организации общих ресурсов между пользователям в окружении chroot (ftp)
пример команды:
mount --bind /home/user/directory /opt/public_ftp/pub/directory
пример записи в fstab:
/home/user/directory /opt/public_ftp/pub/directory none bind 0 0
Ввод и вывод в терминале linux или управление потоками
Полезный справочник по командам Linux
Обьединение нескольких каналов интернет
- Объединение интернет каналов до определенных сетей
- Используем 2+ провайдера
- IP-Балансировка: объединяем несколько интернет-каналов в один
- Объединение пропускной способности двух интернет каналов и простая отказоустойчивость
Управление нагрузкой=
Автологин в консоль или Xorg
виртуальных терминалах обычно запускаются одни и те же программы rungetty, agetty или mingetty.
все они имеют опцию --autologin имя-пользователя (некоторые реализации — -a имя-пользователя), которая делает именно то, что следует из её названия.
другое дело, что не всегда просто определить, где именно находится файл, в котором описан запуск *getty. чтобы добавить опцию к вызову нужного экземпляра *getty.
- в «старой доброй» sysv-инициализации это, естественно, файл /etc/inittab:
$ grep -v '^#' /etc/inittab | grep getty 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
- в системе инициализации upstart эту роль играют, судя по всему, файлы /etc/init/tty?.conf:
$ grep -v '^#' /etc/init/tty?.conf | grep getty /etc/init/tty1.conf:exec /sbin/getty -8 38400 tty1 /etc/init/tty2.conf:exec /sbin/getty -8 38400 tty2 /etc/init/tty3.conf:exec /sbin/getty -8 38400 tty3 /etc/init/tty4.conf:exec /sbin/getty -8 38400 tty4 /etc/init/tty5.conf:exec /sbin/getty -8 38400 tty5 /etc/init/tty6.conf:exec /sbin/getty -8 38400 tty6
в системе инициализации systemd ситуация несколько сложнее. насколько я понял, глядя на debian-овскую конфигурацию, надо заменить символическую ссылку /etc/systemd/system/getty.target.wants/getty@tty1.service, которая ссылается на файл универсального сервиса /lib/systemd/system/getty@.service, на реальный файл (с тем же именем — getty@tty1.service). можно скопировать содержимое того же самого /lib/systemd/system/getty@.service, и добавить вышеупомянутую опцию к вызову программы *getty.
зачем подменять, а не исправлять сразу файл с универсальным сервисом /lib/systemd/system/getty@.service? для того, чтобы при переключении на другие виртуальные терминалы (не tty1) программа *getty запускалась «по-старому», и предлагала «обычное» приглашение к вводу логина/пароля.
Создание раздела диска размером более 2 Тб в Линуксе
Ansible
Команда at в Linux
Программа at является частью набора, состоящего из четырех программ: at, batch, atq и atrm:
at выполняет задачи в назначенное время. atq выводит список ожидающих выполнения задач для каждого пользователя; в случае использования суперпользователем, выводятся все ожидающие выполнения задачи. atrm удаляет задачи, заданные идентификаторами. batch выполняет задачи во время периодов низкой загруженности системы; другими словами, когда средний уровень загрузки системы падает ниже значения 1.5 или того значения, которое задано при вызове atd.
Использование программы at После запуска at предлагает вам ввести последовательность команд для выполнения. Чтобы закончить ввод команд, следует использовать комбинацию клавиш CTRL-D. Описание основных параметров командной строки at приведено ниже:
at [-m] [-q очередь] [-f файл] ВРЕМЯ
Значение этих параметров:
-q используется для указания очереди. Очередь обозначается одной буквой; корректными очередями считаются очереди с идентификаторами от a до z и от A до Z. Очередь с идентификатором a используется по умолчанию, а очередь с идентификатором b является очередью для программы batch. Команды из очередей с идентификаторами, находящимися далее по алфавиту, выполняются с более высоким приоритетом (nice). Специальная очередь "=" зарезервирована для команд, исполняющихся в данный момент. Если команда добавлена в очередь, идентификатором которой является заглавная буква, считается, что команда передана программе batch. В том случае, если программе atq передан идентификатор очереди, программа выведет команды, находящиеся только в этой очереди. -m позволяет отправить пользователю сообщение по электронной почте после выполнения задачи даже в том случае, когда выполненная программа ничего не вывела. -f позволяет прочитать команды из файла, а не со стандартного ввода. В качестве времени at принимает строки в форматах, совместимых со стандартом POSIX.2. Принимается строка, указывающая время в формате ЧЧ:ММ, позволяющая выполнить команду в назначенное время в течение дня. Вы также можете задать день для выполнения команды при помощи строки, указывающей дату в формате имени месяца и дня с необязательным указанием года или задав дату строкой формата ММДДГГ или ММ/ДД/ГГ или ДД.ММ.ГГ. Указание даты должно следовать за указанием времени.
Примеры Во время проведения тестов точное время было следующим:
#date Wed Oct 17 22:31:05 CEST 2012
В том случае, если задать только время, задача будет запланирована на следующий момент достижения этого времени, например, я задал время 20.00, а исполнение задачи было запланировано на следующий день в это время:
#at -f my_at_test.sh 20:00 warning: commands will be executed using /bin/sh job 4 at Thu Oct 18 20:00:00 2012
При этом, если задать время, которое еще не наступило сегодня, исполнение задачи будет запланировано на этот же день:
#at -f my_at_test.sh 22:35 warning: commands will be executed using /bin/sh job 5 at Wed Oct 17 22:35:00 2012
А это еще один пример с использованием сочетания клавиш CTRL+D для завершения ввода команд:
at midnight Friday warning: commands will be executed using /bin/sh at> cp -a /project/source/* /backup/source/^C at> job 6 at Fri Oct 19 00:00:00 2012
Просмотр всех запланированных задач при помощи atq Вы можете использовать программу atq в качестве альтернативы команде at -l для просмотра списка запланированных или выполняющихся в данный момент задач, а единственным аргументом этой программы является -q для указания определенной очереди.
#atq 3 Thu Oct 18 10:25:00 2012 a linuxaria 4 Thu Oct 18 20:00:00 2012 a linuxaria 6 Fri Oct 19 00:00:00 2012 a linuxaria
На мой взгляд, вывод программы не особенно полезен, так как вы не можете посмотреть, какая команда выполняется в рамках задачи с идентификатором 3 или любой другой задачи. Для того, чтобы увидеть, что будет выполняться в рамках задачи, вы можете использовать следующую команду:
at -c идентификатор_задачи
Она выведет длинный список переменных окружения для выполнения команды и саму команду:
#at -c 6 #!/bin/sh # atrun uid=1000 gid=1000 # mail linuxaria 0 umask 22 SSH_AGENT_PID=1579; export SSH_AGENT_PID XDG_SESSION_COOKIE=586bed7d66c5f3bf0810f6ce0000001c-1350495018.439467-8023144; export XDG_SESSION_COOKIE WINDOWID=25165830; export WINDOWID GNOME_KEYRING_CONTROL=/tmp/keyring-m0UVoj; export GNOME_KEYRING_CONTROL USER=linuxaria; export USER LIBGL_DRIVERS_PATH=/usr/lib/fglrx/dri:/usr/lib32/fglrx/dri; export LIBGL_DRIVERS_PATH SSH_AUTH_SOCK=/tmp/ssh-DbbUjzXR1501/agent.1501; export SSH_AUTH_SOCK USERNAME=riccio; export USERNAME SESSION_MANAGER=local/mint-desktop:@/tmp/.ICE-unix/1501,unix/mint-desktop:/tmp/.ICE-unix/1501; export SESSION_MANAGER DEFAULTS_PATH=/usr/share/gconf/default.default.path; export DEFAULTS_PATH XDG_CONFIG_DIRS=/etc/xdg/xdg-default:/etc/xdg; export XDG_CONFIG_DIRS PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games; export PATH DESKTOP_SESSION=default; export DESKTOP_SESSION PWD=/tmp; export PWD GNOME_KEYRING_PID=1424; export GNOME_KEYRING_PID LANG=en_US.UTF-8; export LANG MANDATORY_PATH=/usr/share/gconf/default.mandatory.path; export MANDATORY_PATH MDM_XSERVER_LOCATION=local; export MDM_XSERVER_LOCATION SHLVL=1; export SHLVL HOME=/home/linuxaria; export HOME LOGNAME=linuxaria; export LOGNAME XDG_DATA_DIRS=/usr/share/default:/usr/local/share/:/usr/share/:/usr/share/mdm/; export XDG_DATA_DIRS DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-QWgLeCbkps,guid=b1c32f270937311ee26524ff00000031; export DBUS_SESSION_BUS_ADDRESS MDMSESSION=default; export MDMSESSION WINDOWPATH=8; export WINDOWPATH MDM_LANG=en_US.UTF-8; export MDM_LANG XAUTHORITY=/home/linuxaria/.Xauthority; export XAUTHORITY COLORTERM=gnome-terminal; export COLORTERM cd /tmp || { echo 'Execution directory inaccessible' >&2 exit 1 } cp -a /project/source/* /backup/source/^C
Этот вывод позволяет гораздо лучше понять предназначение задачи. Удаление запланированной задачи при помощи atrm
Мы научились просматривать список запланированных задач и при желании их содержимое, теперь настало время рассмотреть способ их удаления из очереди при помощи программы atrm или команды at -d для удаления определенной задачи. Таким образом, для удаления задачи с идентификатором 3, вам необходимо просто ввести команду:
atrm 3
Данная команда ничего не выводит в консоль, но после ее выполнения вы можете убедиться в удалении задачи при помощи команды atq. Ограничение круга пользователей программы at
Файлы /etc/at.allow и /etc/at.deny устанавливают пользователей, которые могут планировать задачи для последующего исполнения при помощи программ at и batch. В качестве формата этих файлов используется простой список имен пользователей по одному в каждой строке. Использование пробелов в этих файлах не допускается.
Пользователь root может использовать программы at и batch при любых условиях.
В случае существования файла /etc/at.allow, на его основе устанавливается круг пользователей, которым разрешено планирование задач, но обычно в системах этого файла не существует.
Если файла /etc/at.allow не существует, проверяется файл /etc/at.deny, который обычно содержит длинный список "системных пользователей", таких как bin, backup, ftp или www-data, для которых планирование задач запрещено.
Автоматическое монтирование USB
Пример: /etc/udev/rules.d/10-automount.rules ACTION=="add", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/mkdir -p /mnt/%k /bin/chmod a+rwx /mnt/%k" ACTION=="add", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/mount -o sync,umask=0000,iocharset=cp1251 /dev/%k /mnt/%k" ACTION=="remove", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/umount /dev/%k", RUN+="/bin/rmdir /mnt/%k"
Дополнительно к теме:
- Автомонтирование с помощью udev и udisks
- Armbian: Добавляем автомонтирование USB накопителей
- Примеры
Закончились inodes как решить проблему?
Прежде чем что то делать, нужно убедиться что проблема с inodes. Воспользуйтесь командой:
[alexsystem ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda2 121896960 227651 121669309 1% / /dev/hda1 26104 44 26060 1% /boot tmpfs 64417 1 64416 1% /dev/shm
Значения IUsed, IFree, IUse% дадут вам понимание, в какой файловой системе (разделе) у вас проблема.
Потом нужно посмотреть, в какой папке больше всего вложенных элементов (файлов и папок), а потом вывести их списком, список отсортировать в возрастающем порядке, используйте вот такой конвейер:
find . -mindepth 2 | awk -F/ '{ print $2"/" }' | sort | uniq -c | sort -n | tail -10
mindepth 2 или 3 потому, что достаточно просмотреть/посчитать файлы в папках 2/3 уровней вложенности. tail -10 это значит будет показан топ 10 папок с наибольшим количеством элементов.
IBGP
Linux soft
Безопасное удаление файлов (Secure-Delete)
Open vSwitch как ядро виртуальной сети
ИСТОЧНИКИ: