Всем, привет!
Продолжаю работать над вопросами. Решил вынести в отдельный пост команды, которыми пользую каждый день.
Весь список тут
1. Что выполняет команда ```tee```?
Команда tee считывает стандартный ввод (stdin), после чего записывает его в стандартный вывод (stdout) и одновременно копирует его в подготовленный файл или переменную. Например:
df -h | tee file.txt
2. Что выполняет команда ```awk```?
Команда awk используется для выполнения различных практических задач по обработке текста и извлечения данных
3. Что выполняет команда ```tr```?
Команда tr используется для замены, замещения или удаления символов из стандартного ввода(STDIN), отправляя результат на стандартный вывод(STDOUT). Например, заменим все двоеточия: head -3 /etc/group | tr ':' ' '
4. Что выполняет команда ```cut```?
Команда cut позволяет вырезать данные из текстового файла.
5. Что выполняет команда ```tac```?
Команда cat имеет ряд утилит для создания, копирования, слияния и отображения текстовых файлов. tac делает то же самое, но в обратном порядке.
6. Что выполняет команда ```curl```?
Curl - набор библиотек, в которых реализуются базовые возможности работы с URL страницами и передачи файлов. Библиотека поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP.
7. Что выполняет команда ```wget```?
Wget используется для скачивания файлов или целых страниц из сети.
8. Что выполняет команда ```watch```?
Watch используется для отслеживания изменений в выводе(работе) команнд. Например: watch -d date
9. Что выполняет команда ```head```?
head используется для просмотра нескольких начальных строк файла.
10. Что выполняет команда ```tail```?
tail используется для просмотра нескольких конечных строк файла.
11. Что выполняет команда ```less```?
less используется для пролистывания текста.
12. Что выполняет команда ```cat```?
Команда cat имеет ряд утилит для создания, копирования, слияния и отображения текстовых файлов.
13. Что выполняет команда ```touch```?
touch используется для изменения временных меток файлов, однако одно из наиболее распространенных способов использования команды Touch включает в себя создание нового пустого файла.
14. Что выполняет команда ```sar```?
sar используется для мониторинга системы(сбор информации об активности системы), входит в пакет sysstat
15. Что выполняет команда ```netstat```?
netstat - утилита командной строки выводящая на дисплей состояние TCP-соединений (как входящих, так и исходящих), таблицы маршрутизации, число сетевых интерфейсов и сетевую статистику по протоколам.
16. Что выполняет команда ```tcpdump```?
tcpdump - главный инструмент сетевого анализа.
17. Что выполняет команда ```lsof```?
lsof - утилита, которая предназначена для вывода информации о том, какие файлы используются теми или иными процессами.
18. Что выполняет команда ```cpio```?
cpio - простой инструмент, который может использоваться для помещения информации в архив формата cpio или tar.
find ./* | cpio -o > tree.cpio
Извлечение. Флаг -i указывает cpio считать архив для извлечения файлов, а флаг -d говорит cpio создать при необходимости соответствующие каталоги. cpio -id < cpiofile
19. Что выполняет команда ```ps```?
ps (process state — состояние процессов) — это родная утилита Unix/Linux для просмотра информации о работе запущенных процессов в системе: она считывает эту информацию из виртуальных файлов в файловой системе /proc.
20. Что выполняет команда ```nohup```?
Команда nohup — это команда POSIX, используемая для игнорирования сигнала HUP. Сигнал HUP — это способ, которым терминал предупреждает зависимые процессы о выходе из системы.
Всем, привет!
Продолжаю список интересных вопросов, которые задают на собеседовании админам или девопсам.
В этот раз рассматриваем вопросы, связанные с вебом и сетью.
Весь список тут
Какую функцию выполняет DNS в сети?
DNS — система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста, получения информации о маршрутизации почты.
Какие записи ДНС вы знаете, для чего они используются?
Записи DNS, или ресурсные записи (resource records), — единицы хранения и передачи информации в DNS. Запись A (address record) или запись адреса связывает имя хоста с адресом протокола IPv4 Запись AAAA (IPv6 address record) связывает имя хоста с адресом протокола IPv6. Запись CNAME (canonical name record) или каноническая запись имени (псевдоним) используется для перенаправления на другое имя. Запись MX (mail exchange) или почтовый обменник указывает сервер(ы) обмена почтой для данного домена. Запись NS (name server) указывает на DNS-сервер для данного домена. Запись PTR (pointer[5][6]) обратная DNS-запись или запись указателя связывает IP-адрес хоста с его каноническим именем.
Что такое HTTP?
HTTP — протокол прикладного уровня передачи данных в виде гипертекстовых документов в формате «HTML», в настоящий момент используется для передачи произвольных данных.
Что такое HTTP-proxy и как он работает?
Сервер-посредник — промежуточный сервер в компьютерных сетях, выполняющий роль посредника между пользователем и целевым сервером, позволяющий клиентам как выполнять косвенные запросы (принимая и передавая их через прокси-сервер) к другим сетевым службам, так и получать ответы.
Клиент подключается к прокси-серверу и запрашивает какой-либо ресурс, расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кэш).
Кратко опишите как работает HTTPS.
HTTPS - это обычный HTTP, работающий через шифрованные транспортные механизмы SSL и TLS
В TLS используется как асимметричная схема шифрования (для выработки общего секретного ключа), так и симметричная (для обмена данными, зашифрованными общим ключом). Сертификат открытого ключа подтверждает принадлежность данного открытого ключа владельцу сайта. Сертификат открытого ключа и сам открытый ключ посылаются клиенту при установлении соединения; закрытый ключ используется для расшифровки сообщений от клиента.[5]
Что означает директива upstream в настройках nginx'a?
Данная директива включает балансировку нагрузки. По умолчанию, соединения распределяются по серверам циклически (в режиме round-robin) с учётом весов серверов.
Кратко опишите действия по созданию и установке ssl-сертифката для сайта https://foo.example.com
1. Купить сертификат у проверенного центра авторизации или сгенерировать само подписанный
2. В настройках вашего сервера включить поддержку ssl и указать путь к сертификату.
Можно ли использовать несколько SSL-хостов на одном айпи-адресе?
Да, с помощью веб-сервера это можно сделать
Что такое wildcard сертификат?
Wildcard-сертификат — сертификат открытого ключа, который может использоваться с несколькими поддоменами.
Например, один сертификат для *.example.com обеспечит домены payment.example.com, contact.example.com, login-secure.example.com
Всем привет!
В этой статье рассмотрим настройку мониторинга на zabbix'e: подключим шаблон мониторинга, включим мониторинга порта и системных компонентов. В качестве подопытного возьмем сервер Apache.
Что имеем в самом начале - это установленный сервер Zabbix'a на CentOs'e.
Для начала посмотрим, что предлагает использовать сам Zabbix для мониторинга веб-сервера Apache. Вариантов много, остановимся на решении без подключения внешних скриптов (Template App Apache2 for Zabbix 4.0 that works without any external scripts). Из этого решения нам нужен файл xml, загружаем. При импорте у меня он не захотел импортироваться сразу, поэтому пришлось скопировать содержимое, а сам файлик создать отдельно. Проверяем, что модуль status_module в апаче установлен, если нет - устанавливаем. httpd -M 2>/dev/null | grep status_module
В конфиг апача вносим такие настройки: <Location /server-status> SetHandler server-status Order deny,allow </Location> ExtendedStatus On Перегружаем апач. На странице Templates создаем новый шаблон изxml-файла. На странице Configuration-Hosts создаем новый хост: указываем имя и группу(рекомендую создать отдельную групу для ваших серверов, а не использовать группу по умолчанию).
В настройках агента(/etc/zabbix/zabbix_agentd.conf) этого нового хоста, не забудьте добавить разрешения для основного сервера, с которого осуществляется мониторинг, у меня это 10.30.1.41 Server=127.0.0.1, 10.30.1.41
Далее - прицепляем импортированный шаблон "Template App Apache2 Zabbix agent".
Переходим на вкладку Applications, там должно появиться ваше первое приложения для апача. Добавим еще одно, назовем его Open ports, внутри этого приложения кликаем на Add item - добавим новое условие мониторинга. Указываем название и приложение. В настройках нас интересует ключ net.tcp.service[http,10.30.1.41,80] (служба http, айпи-адрес и порт).
Сохраняем. Ждем пару минут, переходим на вкладку Monitoring-Latest data
Итак, для текущего примера получаем минимальный пакет для мониторинга веб-сервера и работающего порта. В дашборд выведу пару графиков, выглядят они, конечно, приятно, но по большому счету это просто красота:)
Всем привет!
Сегодня устанавливаем Zabbix в оффлайн режиме. Как обычно в оф. документации все просто, проверим - так ли это. Для данной задачи используется сервер с CentOs'ом, который имеет доступ в интернет, чтобы можно было скачать нужные пакеты, и второй сервер без доступа к интернету. На этот сервер и будем устанавливать заббикс.
Для начала берем все нужное(загружаем в папку tmp): yum install --downloadonly --downloaddir=/tmp / zabbix40-server-mysql / zabbix40-web-mysql / zabbix40-agent / yum install createrepo -y --downloadonly --downloaddir=/tmp
Возможно, что еще понадобятся и эти зависимости: deltarpm, python-deltarpm
С помощью createrepo сделаем репозитарий из локальной нашей папки с загруженными пакетами:
createrepo /custom_repo/
Перенесем туда все пакеты, далее переподключаем репозиторий. yum clear all yum repolist
Загрузили, перенесли все пакеты на второй сервер.
Приступаем к установке и сразу же получаем ошибку: Error: Package: zabbix40-server-mysql-4.0.12-1.el7.x86_64 (LocalRepo) Requires: libcrypto.so.10(OPENSSL_1.0.2)(64bit)
Версия openssl требует обновления.
Бежим качаем 2 пакета(на текущий момент такая версия): openssl-1.0.2k-19.el7.x86_64.rpm openssl-libs-1.0.2k-19.el7.x86_64.rpm
Далее удаляем старый openssl, обновляемopenssl-libs(зависимости) и устанавливаем новую версию openssl. Продолжаем установку: yum install zabbix40-server-4.0.12-1.el7.noarch.rpm
Далее все гут, едем дальше. yum install zabbix40-web-4.0.12-1.el7.noarch.rpm
Получаю ошибку: Error: Package: php-5.4.16-46.el7.x86_64 (LocalRepo) Requires: httpd-mmn = 20120211x8664
Если вы получаете ошибки такого рода: #systemctl status mysql ● mysql.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead) # mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
Значит у вас не запущен сервер СУБД - проверьте тот ли пакет вы установили и запустите службу.
systemctl start mariadb.service
Создаем БД и импортируем скрипты для работы(строго по порядку): shell> mysql -uroot -p<пароль> mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<пароль>'; mysql> quit;
shell> cd database/mysql shell> mysql -uzabbix -p<пароль> zabbix < schema.sql shell> mysql -uzabbix -p<пароль> zabbix < images.sql shell> mysql -uzabbix -p<пароль> zabbix < data.sql
В конфиге сервера /etc/zabbix/zabbix_server.conf указываем настройки сервера: DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix_pass
Запускаем сервер systemctl start zabbix-server
Не забываем включить его в автозапуск systemctl enable zabbix-serverЕсли у вас на этом же сервере стоит и агент, то включаем его:
systemctl enable zabbix-agent.service
Вносим изменения в настройки httpd и php. Например, date.timezone = Europe/Moscowр, у меня конфиги из папки http не считывались и возникла ошибка: Time zone for PHP is not set (configuration parameter "date.timezone").
Поэтому пришлось поправить этот параметр в /etc/php.ini date.timezone = Europe/Moscow
Запускаем httpd и браузером заходим на адрес сервера http://ip-servera/zabbix
Заполняем все поля, указывваем параметры подклюбчения, имя сервера и другие настройки.
Установка на этом завершена. Логин-пароль по умолчанию Admin/zabbix.
Всем, привет!
Продолжаю список интересных вопросов, которые задают на собеседовании Linux админам.
В этот раз рассмотрим вопросы среднего уровня(middle)
Весь список тут
Вопросы среднего уровня:
20. Что обозначает ```&``` после команды?
Амперсанд переводит выполнение команды терминала в фоновый режим(background).
21. Что обозначает ```& disown``` после команды?
& disown переводит выполнение команды в фоновый реджим и "отвязывает" терминал от выполняемого процесса(disown удаляет задачу из списка задач оболочки).
22. Что такое фильтр пакетов (packet filter) и как он работает?
Фильтр пакетов - программа, которая просматривает заголовки пакетов по мере их поступления, и определяет дальнейшую судьбу всего пакета. Фильтр может сбросить (DROP) пакет или принять (ACCEPT) пакет или сделать с ним что-то еще более сложное.
23. Что такое виртуальная память(Virtual Memory)?
Виртуальная память – это адресное пространство процесса. Процесс работает не с физической памятью напрямую, а с виртуальной.
24.Что такое swap и для чего используется?
SWAP (своп) — это механизм виртуальной памяти, при котором часть данных из оперативной памяти (ОЗУ) перемещается на хранение на жёсткий диск. В ОС Linux оперативная память делится на разделы, называемые страницами (pages). Swapping (”подкачка”) – это процесс во время которого страницы памяти копируются на специально сконфигурированный для этого раздел диска, называемый swap space (раздел подкачки, может быть как и файлом, так и разделом жесткого диска), для освобождения ОЗУ.
Что такое "sticky bit"?
Сегодня sticky bit используется в основном для каталогов, чтобы защитить в них файлы. Из такого каталога пользователь может удалить только те файлы, владельцем которых он является. Примером может служить каталог /tmp, в который запись открыта для всех пользователей, но нежелательно удаление чужих файлов.
Для чего предназначен бит неизменяемости(immutable bit)?
Бит (bit) неизменяемости (immutable) может быть назначен файлу, который размещён в расширенной файловой системе (Ext3, Ext4), для его защиты от изменений. "immutable bit" может быть добавлен к атрибутам файла с помощью программы chattr и только супер-пользователем.
Что такое жесткая ссылка, символическая? Чем отличаются? Что произойдет если удалить источник, на который указывает ссылка?
Символическая ссылка(ярлык) - содержит адрес нужного файла в вашей файловой системе. Когда вы пытаетесь открыть такую ссылку, то открывается целевой файл или папка. При удалении источника ссылка указывает в никуда
Жесткая ссылка непосредственно указывает на местоположение файла на жестком диске. Файл можно перемещать между каталогами, и все ссылки останутся рабочими, поскольку для них неважно имя.
Что такое айнод(inode) и какие поля в нем хранятся?
Inode (индексный дескриптор) — структура данных в традиционных для ОС UNIX файловых системах(например, ext4). В этой структуре хранится метаинформация:названии, разрешениях, устройстве размещения, времени последнего доступа и тд.
Посмотреть можно командами: ls -i && stat filename
Что такое SNMP и для чего он используется?
Стандарт SNMP (Simple Network Managment Protocol) был специально разработан для диагностики, управления и мониторинга любых устройств и программных компонентов, доступных по сетевым интерфейсам.
Как уменьшить размер файла, который используется в текущий момент(например, файла лога)?
Используя команду truncate
Например, полностью очистить: truncate -s 0 file
Что такое переадресация SSH-порта?
Переадресация порта SSH создает безопасное соединение между удаленным компьютером, через который можно ретранслировать сервисы, и локальным компьютером, который выдает команды. Это также называется SSH-туннелированием и используется для передачи информации, которая не требует зашифрованного протокола.
Как добавить пользователя без использования команд useradd/adduser?
Добавить запись в /etc/passwd
Добавить запись группы в /etc/group
Создать домашнюю директорию для пользователя
Установить пароль
Опишите команду mknod и расскажите когда вы её используете?
Команда mknod используется для создания файлов устройств. Файлы устройств хранятся в каталоге /dev, и в отличие от обычных файлов, эти файлы устройств — те, о которых ядро знает, и которые читает или записывает в них.
Загрузка диского пространства 100%, вы удалили огромный файл логов, но df показывает - нет свободного места. В чем проблема?
Какой-то процесс держит файл. С помощь lsof some.log определяем какие процессы не отпустили файл, завершаем их и файл удаляется.
Вы получаете ошибку "filesystem is full", хотя 'df' говорит об обратном, место есть. В чем проблема?
Проверьте досутность inode, df -i. Возможно закончились айноды.
Расскажите как работает команда 'ps'.
Команда ps работает путем чтения файлов в файловой системе proc. Каталог / proc / PID содержит различные файлы, содержащие информацию о PID'е процесса. Содержимое этих файлов генерируется ядром на лету, когда процесс их считывает.
Что происходит с дочерним процессом, который завершил свое выполнение, но у которого нет родительского процесса ожидающего его завершение? Почему это плохо?
Процесс при завершении освобождает все свои ресурсы и становится «зомби» — пустой записью в таблице процессов, хранящей код завершения для родительского процесса. Система уведомляет родительский процесс о завершении дочернего с помощью сигнала SIGCHLD. Предполагается, что после получения SIGCHLD он считает код возврата с помощью системного вызова wait(), после чего запись зомби будет удалена из списка процессов. Если родительский процесс игнорирует SIGCHLD, то зомби остаются до завершения родительского процесса.
Кратко опишите каждое состояние процесса(process states) в ОС Linux.
Running состояние, в котором процесс либо запущен, либо готов к запуску. Interruptible является заблокированным состоянием процесса, который ожидает события или сигнала от другого процесса Uninterruptible. Процесс вынужден остановиться при определенном условии, т.к оборудование находится в состоянии ожидания и сигнал не может быть обработан. Stopped возникает, когда процесс завершен. Этот процесс можно перезапустить. Zombie в этом состоянии процесс будет завершен, и информация по-прежнему будет доступна в таблице процессов.
Вы запускаете скрипт и хотите посмотреть вывод в терминале и сохранить в файл, как это можно сделать?
Можно воспользоваться утилитой tee ./script | tee somefile.log
Объясните, что выполнит данная команда echo "1" > /proc/sys/net/ipv4/ip_forward
Команда включает IP Forwarding
Какие типы файлов вы знаете в ОС Linux?
- : обычный файл
d : директория
c : символьное устройство, используется для взаимодействия с периферическими устройствами
b : блочное устройство, используется для взаимодействия с периферическими устройствами:диски, память
s : сокет, используется для взаимодействия между процесами
p : пайп, похож на сокет, используется для взаимодействия 2-х локальных процессов
l : ссылка
В чем разница между процессом и потоком?
Процесс — экземпляр программы во время выполнения, независимый объект, которому выделены системные ресурсы (например, процессорное время и память). Каждый процесс выполняется в отдельном адресном пространстве: один процесс не может получить доступ к переменным и структурам данных другого. Поток использует то же самое пространства стека, что и процесс, а множество потоков совместно используют данные своих состояний. Как правило, каждый поток может работать (читать и писать) с одной и той же областью памяти, в отличие от процессов, которые не могут просто так получить доступ к памяти другого процесса. У каждого потока есть собственные регистры и собственный стек, но другие потоки могут их использовать. Поток — определенный способ выполнения процесса. Когда один поток изменяет ресурс процесса, это изменение сразу же становится видно другим потокам этого процесса.
Всем, привет!
Продолжаю список интересных вопросов, которые задают на собеседовании Linux админам.
На этот раз очередь курьезных вопросов или веселых.
Так что будьте готовы к вопросу "чем отличается крокодил от холодильника" :)
Весь список тут
Веселые вопросы:
1. Админ случайно выполнил команду: ```chmod 444 /bin/chmod ```. Как починить?
Запустить загрузчик напрямую /lib/ld-linux.so /bin/chmod +x /bin/chmod
Восстановить разрешения с помощью busybox: busybox chmod +x /bin/chmod
Другие варианты: скопировать с другой системы; написать скрипт, который меняет разрешения.
2. Вы забыли(потеряли) пароль рута, что делать?
Восстановить пароль рута можно с помощью Grub или LiveCD.
3. Вы перезапустили удаленно сервер, но через 10 минут вы по-прежнему не можете к нему подключиться по SSH. В чем может быть проблема?
Нет проблемы с демоном SSH, проблема с командой reboot
Не выполняйте команду reboot now, выполняйте reboot или shutdown -r now для перезагрузки.
Человеческий фактор: изменен порт SSH, файервол заблокировал порт и т.д.
4. Вы застряли на необитаемом острове, какие 5 утилит командной строки вы бы выбрали?
Вряд ли они вам понадобятся на необитаемом острове:) Make help
5. Вы случайно удалили файл с запущенным скриптом, возможно ли его можно восстановить?
Пока скрипт запущен, файл восстановить можно с помощью procfs
Определите PID процесса, в директории /proc/$PID/fd будут находиться все дескрипторы, открытые этим процессом.
Далее просто копируете нужный: cp /proc/1234/fd/4 testing.txt.bk
6. Что приозойдет 19 Января 2038?
На 32-х битных ОС, в которых используется представление времени по стандарту POSIX (UNIX-время), произойдет переход времени в 1970. Чтобы этого не произошло нужно использовать 64-ую битную версию ОС.
7. Как перегрузить сервер, если команда reboot не отвечает?
Использовать команду shutdown
8. Чем отличается rest от json'a?
Это как раз про крокодила;)
Rest - архитектурный стиль взаимодействия компонентов распределённого приложения в сети.
SOAP - простой протокол доступа к объектам. Сейчас протокол используется для обмена произвольными сообщениями в формате XML.
REST поддерживает различные форматы: text, JSON, XML; SOAP - только XML
Коллеги, расскажите о вопросах, которые вам показались курьезными на собеседовании! :)
Успехов!
12. Какой командой можно изменить владельца файла? Установить разрешения на файл?
chown; chmod
13. Что выполнит данная команда ```chmod +x FILENAME```?
Добавит разрешение на запуск файла
14. Что означают разрешение 0750 для файла? Отличается от разрешений для директории?
Владелец имеет полные права доступа, группы - чтение и запись, остальные пользователи - не имеют доступа.
Не отличается
15. Как добавить нового юзера без разрешения на логин(login permissions)?
useradd -r newuser --shell=/sbin/nologin
16. Как добавить/удалить пользователя из группы?
usermod -aG somegroup user deluser user group
17. Что выполнит данная команда CTRL-c?
Отправит сигнал SIGINT, который завершит процесс
18. Что находится в файле /etc/services?
Файл описывает соответствие службы и порта
19. Как перенаправить стандартный вывод STDOUT и стандартный вывод ошибок STDERR? (> /dev/null 2>&1)
Направить стандартный поток вывода и стандартный поток ошибок в файл: some_command > file.log 2>&1
Направить стандартный поток ошибок в файл: some_command > file.log 2> file.err
20. Какая разница между подключением по Telnet и SSH?
ssh использует шифрование
21. Какими командами можно посмотреть среднюю загрузку системы? Объясните 3 основных значения загрузки системы(load average)?
w; top; uptime; загрузка за минуту, загрузка за 5 минут, за 15 минут.
22. Назовите опции в нижнем регистре для команды ```ls```, которые не являются рабочими.
х; у.
23. Что такое модуль ядра Linux'a?
loadable kernel module, LKM — объект, содержащий код, который расширяет функциональность запущенного (базового) ядра ОС.
24. Что такое протокол ICMP? Для чего используется?
протокол межсетевых управляющих сообщений. Используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают.
25. Что такое уровень запуска и как посмотреть текущий?
Нумерованный режим функционирования операционной системы, определяет какие функции будут загружены в ОС. Чем выше уровень - тем больше функций. runlevel
26. Как проверить является ли машина виртуальной?
С помощью команды /proc/cpuinfo, Linux добавляет в ответ флаг hypervisor
С помощью команды virt-what
С помощью команды hostnamectl
27. Как принудительно заставить систему выполнить проверку файловой системы при следующем запуске?
Для этого нужно создать файл forcefsck в корневом разделе: touch /forcefsck
28. Какой процесс идет с пидом 1?
Самый первый процесс при запуске системы получает пид 1(PID 1), так называемый инит(init)
Если этот процесс завершается по какой-либо причине, все остальные процессы тоже завершаются
Если завершается процесс, у которогое есть потомки, все потомки переходят(reparented) под процесс с пидом 1
Допустим, у нас есть сервер с которого мы хотим получать "правильное"(читай, настоящее)
время для нашего сервера centos внутри локальной сети. Для этого воспользуемся демоном Chrony.
Проверяем установлен ли chrony(в противном случае - yum install chrony)
#systemctl status chronyd
Включаем: #systemctl enable chronyd
Редактируем конфигурационный файл: vi /etc/chrony.conf
Добавляем локальные NTP сервера: server 10.30.17.234 server 10.30.17.235
Уровень выполнение (запуска). Уровни выполнения определяют, какие задачи могут выполняться в текущем состоянии (или на текущем уровне выполнения) операционной системы Linux.
0 - Завершение работы компьютера.
1 - Однопользовательский режим (обычно имеет псевдоним s или S)
2 - Многопользовательский режим без поддержки сети.
3 - Многопользовательский режим с поддержкой сети.
5 - Многопользовательский режим с поддержкой сети и графической оболочки X Window.
6 - Перезагрузка компьютера.
Посмотреть уровень запуска системы можно командами: #who -r #runlevel
Виды потоков
STDIN (0) Стандартный входной поток. Канал, принимающий данные для обработки и последующей передачи на канал STDOUT и/или STDERR.
STDOUT(-1) Стандартный выходной поток. Представляет собой канал записи результатов выполнения каких-либо процессов.
STDERR(-2) Стандартный выходной поток ошибок. В данный канал попадают сообщения об ошибках.
Управление потоками
> Вывод STDOUT в файл #find /somedir/ -size +20G > /tmp/testfile
>> добавление STDOUT в конец файла #find /somedir/ -size +20G >> /tmp/testfile
>& вывод STDOUT и STDERR в файл #find /somedir/ -size +20G >& /tmp/testfile
>2 вывод STDERR в файл #find /somedir/ -size +20G >2 /tmp/testfile
Комбинированный вывод #find /somedir/ -size +20G > /tmp/testfile >2 /dev/null
Более детально про потоки.
Команды и описание. lsmod - Информация о модулях ядра. Объекты которые расширяют функционал ядра. lspci - информация об устройствах pci lspcmcia - платы расширения для ноутбуков lsusb - информацияо usb
С помощью команды udevadm используем следующие параметры:
info смотрим информацию;
trigger эмуляция некоего события для устройства;
settle ожидание завершения обработки;
control управление демонами;
monitor отслеживание событий;
test симуляция события;
Модули управлением ядром:
lsmod информация о модулях ядра(Драйвер — модуль ядра, подсказывающий шине, как правильно обращаться с устройством);
modinfo информация о конкретном модуле(например, на скрине показана информация о ФС);
В случае если у вас сервер не имеет выхода в интернет, то можно и нужно добавлять локальные репозитории для установки и обновления пакетов. По умолчанию, нет установленных репозиториев: #yum repolist
Добавим один. Создадим в папке /etc/yum.repos.d/ файл с названием serv.repo Его содержимое:
Обновим #yum repolist
Теперь можно приступать к обновлению и установке=) #yum install pam-devel.i686 0:1.1.8-12.el7_1.1
Сегодня определим или вернее сказать посмотрим основные утилиты, которые помогут нам собрать статистику по операционной системе. Определить тип процессора, количество оперативной памяти, собрать информацию по дисковому пространству.
1. Смотрим на процессор: lscpu
У меня один интеловский процессор с 4-мя ядрами, работает на частоте 2.7 ГГЦ.
2. Далее диски fdisk -l
Дисков может быть много, поэтому покажу только 2. У меня они работают в LVM.
Подробнее про LVM.
3. Периферийные устройства: lspci (вывод образан)
Из картинки понятно, что у меня виртуалка под управлением VWware. lspci -v | grep "VGA"
Покажет дефолтный VGA-адаптер.
4. Смотрим блочные устройства: lsblk
Все теже, знакомые диски=)
5. Смонтированные файловые системы или устройства. mount
6. Теперь на очереди - ОП. free
7. Виртуальная директория /proc предоставляем нам немного дополнительной информаци.
Например, cat /proc/meminfo cat /proc/cpuinfo cat /proc/filesystems
8. Проверка установленной ОС и ее версии hostnamectl
Сегодня займемся установкой 32-х битного сервера лотуса на 64 битную платформу linux'а.
Установим сам линукс, думаю, что это не займет много времени.
Lotus domino будем ставить в отдельный том (отдельную файловую систему), поэтому установка линукса обязательна в LVM.
Под систему 50 Гб, под данные 450 Гб.
Смотрим группу томов: vgdisplay
Создаем том под данные, под лог и под установочные файлы лотус-сервера:
Теперь в этих томах создаем файловые системы ext4. mke2fs -t ext4 /dev/vg_local/tlog mke2fs -t ext4 /dev/vg_local/domino mke2fs -t ext4 /dev/vg_local/data
Создадим пути и смонтируем:
Записываем информацию о новых файловых системах в файлик /etc/fstab
Чтобы монтировались при загрузке системы: /dev/mapper/vg_local-tlog /data/tlog ext4 defaults 1 2
Расширим директорию /tmp, чтобы залить туда дистрибутивы.
Расширяем логический том, затем файловую систему lvextend --size +3G /dev/vg_local/tmp resize2fs /dev/mapper/vg_local-tmp 4G
Перед установкой отключаем файерволл:
Или указываем разрешенные порты.
Создаем пользователя, под которым будем запускать лотус-сервер и группу.
Теперь можно приступить к установке:
Запускаем установщик и получаем вот такую ошибку:
Ок, устанавливаем зависимости - без них никак.
В процессе установки указываем нужные параметры:
Установили сервер, не забываем устанавливать фик паки и обновления. При установке фикс пака нужно установить пересенную NUI_NOTESDIR, которая показывает на программные файлы лотус-сервера. NUI_NOTESDIR=/domino/ibm/lotus
Кнопка "tab" вас спасет=)) жмем только на нее.
Теперь сетапим сервер - переключаемся на notes'a и переходим в дата-директорию /domino/ibm/lotus/bin/server -listen
Запускаем клиент удаленной установки сервера.
И далее обычная установка сервера Lotus Domino=)
Не забываем устанавливать лимиты в /etc/security/limits.conf
notes soft nofile 60000
notes hard nofile 80000
Бывают случаи, когда пакет не нужно сразу же устанавливать ( а может и другие случаи =)), а всего лишь нужно скачать и передать на другой хост или оставить на память! И не хочется рыскать по интернетам, а сделать это с помощью старого и доброго yum'a.
Ничего нет проще - но для начала устанавливаем дополнение к yum. #yum install yum-plugin-downloadonly
И все готово! Указываем название пакета, и директорию куда его положить=)
На примере клиента телнета. #yum install --downloadonly --downloaddir=/tmp/ telnet.x86_64 Теперь скачанный пакет будет доступ в нужном месте!
Столкнулся сегодня с проблемой монтирования обычной шары на Suse 12.3 linux-tj2r:/mnt # mount -t cifs //10.0.121.54/Users/IBM01/Downloads /mnt/tmp -o username=IBM01,rw
Password for IBM01@//10.0.121.54/Users/IBM01/Downloads: ****** mount error(12): Cannot allocate memory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Сначала грешил на разрешения в шаре, но там все прописано и шара доступна под windows машинами без проблем. Нашел в логах винды следующую ошибку:
The server was unable to allocate from the system nonpaged pool because the server reached the configured limit for nonpaged pool allocations.
Ошибка службы SRV. Перегрузил службу, нет успеха - шара не монтируется.
Нашел решение на технете - нужно редактировать реестр. HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache =1 (установил значение 1) HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size =3 (установил значение 3)
Перегрузил машину - заработало!
Еще одна разновидность ошибки при монтировании: mount error(115): Operation now in progress Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Данная ошибка возникает при некорректно работающем ДНС.
Нужно внести изменения в сетевую конфигруацию, так чтобы адреса начали резолвиться с помощью nslookup или dig.
Успехов!