• Главная
  • Документация

АГИС Администрирование

Главная/Документация/АГИС Администрирование
Развернуть все Свернуть все
  • О разделе АГИС Администрирование
  •  Установка АГИС
    • Инсталяция Ubuntu
    • Установка LVM
    • Установка Docker
    • Установка модулей АГИС
    • Резервные копии
  • Запуск, перезапуск и останов АГИС
  •  Администрирование
    •   Ubuntu
      •   LVM&Snapshot
        • Snapshot
        • agis_backup_lvm_xfs
        • Ошибки
      •   Nginx, ssl, letsencrypt
        • Сертификат ssl
        • Letsencrypt
      •   NAS
        • Synology
        • Qnap
      •   SSH
        • SSH доступ без пароля по ключу
        • Клиент ssh
      •   Разные команды
        • Основные команды Linux
        • Расширенные команды
        • Работа с сервером
        • Gnome
      • FTP server
      • VPN server
    •   Базы данных
      • Запуск базы данных АГИС
      •   Mongo
        • mongodump-mongorestore
        • Основы
        • Test mongo db
        • Запросы mongodb
        • Запуск mongodb
        • Studio 3T for Mongo DB
        • Тестовый контейнер mongodb
        • mongodb формат даты
        • Replica set
      •   PostgreSQL
        • Test postgis
        • Dump&Restore PostgreSQL
        • Установка и запуск
        • PostgreSQL разное
      •   Elastic search
        • Команды elasticsearch
        • Tools to backup and restore ElasticSearch indices
      • Troubleshooting базы данных АГИС
      • MySql
    •   Docker
      • Команды Docker
      • Команды Docker (admin)
      • docker ps
      • .env
      • docker images save load
    •   Troubleshhoting
      • Mobaxterm
      • Проблема с дисками после raid
    •   Pfsense
      • Установка
      • Openvpn client
    •   Разное
      • Сколько байт(бит) в килобайте, мегабайте, гигабайте
      • Save bookmarks Studio 3T Mobaxterm
      • Acronis true image
      • Кодировки
      • OPC
  •  АГИС ГИС сервер
    • Запуск и остановка Tile сервера
    • Экспорт шейпа из АГИС ГИС
    • Импорт шейпа в АГИС ГИС
    • Backup&restore postgis(postgres)
    • Запуск pgAdmin4
    • Troubleshooting postgis
  •  АГИС Администрирование
    •   Пользователи
      • Добавление нового пользователя
    •   Роли
      • Добавление новой роли
    •   Перевод
      • Добавления перевода
    • АДС (Автоматизированная дисп служба)

Расширенные команды

545 просмотров 0

Какая программа использует порт 4005(ps port)

$ lsof -i :4005
COMMAND     PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
node    3973653 agis   53u  IPv4 518855933      0t0  TCP *:4005 (LISTEN)

Самое быстрое копирование директорий между хостами

date && tar -C ./agis -c . | pigz | ssh agis@192.168.0.8 tar -C /data/backup/agis -zx && date
date && tar -C ./agis -c . | pigz | ssh agis@192.168.0.8 cp -i /dev/stdin /000/agis.tgz && date

pigz — сокращение от Parallel Implementation of GZip (параллельная реализация GZip), это полная замена GZip, способная использовать несколько процессоров (нескольких ядер) при сжатии данных.

Сбросить или обновить пароль пользователя linux

  1. Загрузиться с флешки (live cd ubuntu)
  2. Примонтировать файловую систему root: mount /dev/sda2 /mnt
  3. Изменить root файловой системы: chroot /mnt
  4. Поменять пароль пользователя: passwd agis
  5. Перегрузить: reboot

Глобально заменить в файлах текст

Во всех xml файлах заменить 43103 на 41303

sed -i 's|43103|41303|g' ./*.xml
sed -i 's|-ust|-taldyk|g' */.env

Во всех config файлах заменить /data/agis/agis-bil-config на ./agis-bil-config

sed -i 's|/data/agis/agis-bil-config|./agis-bil-config|g' ./*.config

В файле list.txt

sed -i 's|BIND_VOLUME=/data/agis/agis-bil-config|BIND_VOLUME=./agis-bil-config|g' ./list.txt

sed -i 's|-aktau|-ust|g' ./*.env

Вывод содержимого всех .env файлов

Для вывода содержимого всех .env файлов в текущей директории и всех её поддиректориях, с указанием названия директории и файла, можно использовать следующую команду bash:
find . -name "*.env" -print0 | while IFS= read -r -d '' file; do echo "Directory: $(dirname "$file")"; echo "File: $(basename "$file")"; cat "$file"; echo; done

Directory: ./agis-is
File: .env
CONTAINER_NAME=agis-is-aktau
BIND_VOLUME=../agis-scada-config
PORT_EXPOSE_NAME=3000

Directory: ./agis-mes-odata
File: .env
CONTAINER_NAME=agis-mes-odata-aktau
BIND_VOLUME=./
PORT_NAME=33382
PORT_EXPOSE_NAME=3000
TIME_ZONE=Asia/Almaty
Для того чтобы ограничить вывод содержимым файлов .env только строками, содержащими PORT_NAME, можно немного изменить команду, добавив фильтрацию с помощью grep
find . -name "*.env" -print0 | while IFS= read -r -d '' file; do
    echo "Directory: $(dirname "$file")"
    echo "File: $(basename "$file")"
    grep 'PORT_NAME' "$file"
    echo
done

Как в Linux создать или увеличить файл подкачки (Swap)

swapon --show
#Создаю сам файл, который будет использоваться в качестве файла Swap (подкачки):
sudo fallocate -l 10G /swapfile
sudo chmod 600 /swapfile
#Форматируем этот файл в swap:
sudo mkswap /swapfile
#И включаем новый файл подкачки:
sudo swapon /swapfile
swapon --show

cat /etc/fstab
/swapfile none swap defaults 0 0
/swapfile none swap sw       0 0
Приоритет, когда 2 файла. Для этого используйте параметр pri=, например так:
cat /etc/fstab
/swapfile none swap defaults,pri=100 0 0
/dev/sda1 none swap defaults,pri=10 0 0
Или установить значения приоритета в командной строке:
sudo swapoff /swapfile
sudo swapon --priority 100 /swapfile
 

SFTP FTP

Using the -p flag preserves the timestamps of the source:

sftp> mget -p *

TAR

Распаковка конкретных файлов

Из архива tar, tar.gz или tar.bz2 можно извлечь как все файлы, так и один конкретный файл, указав имя файла:

tar xvf mnt.tar file1.txt

Аналогично, можно указать несколько имен файлов, разделенных пробелом, чтобы извлечь их вместе за один переход.

tar xvf mnt.tar file1.txt file2.txt file3.txt

Исключение определенных файлов

может быть обязательным при создании архивов tar. Этого можно достичь с помощью флага –exclude.

tar --exclude="dir/file2.txt" --exclude="dir/file-new*.txt" -czf mnt.tgz dir/
tar --exclude="agis-asa/db" --exclude="agis-asa/agis-scada-config/logs" -czf agis-asa.tgz agis-asa/
tar --exclude="agis-asa/db" --exclude="agis-asa/agis-scada-config/logs" --exclude="agis-asa/agis-scada-config/.tilecache" -czf agis-asa.tgz agis-asa/
tar --exclude="db" --exclude="old" --exclude="agis-zander202" --exclude="agis-zander-401-server" --exclude="agis-scada-config/logs" -czf mnt.tgz ./
tar --exclude="555" -czf mnt.tgz 000/

Распаковка с помощью маски

tar xvf mnt.tar --wildcards "file*"

Добавлять новые файлы

В существующий несжатый архив можно добавлять новые файлы используя флаг r или –append с новыми именами файлов или шаблоном подстановочных символов (помните, что это работает только с несжатыми TAR-файлами, а не со сжатыми форматами tar.gz или tar.bz2):

tar rvf mnt.tar file-new*

Удаление определенных файлов

Удаление определенных файлов из архива tar возможно с помощью флага –delete, как показано ниже (сравните список tar до и после удаления файлов):
tar –delete -f mnt.tar file1.txt file2.txt file3.txt

Извлечь содержимое в определенную папку

Если вы хотите извлечь содержимое в определенную папку вместо текущего каталога, используйте флаг -C с указанием пути к каталогу, как показано ниже:

tar xvf mnt.tar -C new-directory/

Поиск любых изменений между файлами

Можно использовать флаг –diff или d для поиска любых изменений между файлами в архиве tar и файлами в файловой системе. Вот пример, который запускает diff один раз, когда файл внутри архива и снаружи был один и тот же. Если запустить команду снова после обновления файла, то можно увидеть разницу в выходных данных.

tar dvf mnt.tar file4.txt

More…

Rsync

echo $(date +"%d-%m-%Y %T") backup user >> /var/services/homes/backup/backup.log
/usr/bin/rsync -aze "ssh -p 22" user@remote-host:/home/user /var/services/homes/backup/

user@remote-host:/home/user – создаст /var/services/homes/backup/user и скопирует содержимое user
user@remote-host:/home/user/ – скопирует содержимое user в /var/services/homes/backup/

Rsync – это remote sync или удаленная синхронизация, является средством удаленной и локальной синхронизации файлов. Он использует алгоритм, который минимизирует объем копируемых данных, перемещая только те части файлов, которые были изменены.

sudo apt-get install rsync

rsync -options /source/ /destination/
Закрывающий слэш
Когда вы указываете путь к директории в качестве источника, обращайте внимание на закрывающий слэш – символ / в конце имени директории. Закрывающий слэш означает “внутреннее содержимое”. Например, если в конце /source/ есть слэш, rsync скопирует содержимое /source/ в /destination/. Но если слэша в /source не будет, то rsync создаст директорию dir внутри /destination/ и скопирует все содержимое /source/ в /destination/source/. При этом, наличие или отсутствие закрывающего слэша в имени директории, в которую будет происходить копирование, значения не имеет.

Ключ -r обеспечивает рекурсивную синхронизацию каталогов.

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

-a, –archive archive mode; equals -rlptgoD (no -H,-A,-X)

Синхронизация удаленной системы
Синхронизация с удаленным каталогом выполняется по аналогии с синхронизацией локальных каталогов. Используйте команду в следующем формате:
rsync -a ~/directory1 username@remote_host:destination_directory

В терминах git данную операцию можно назвать push. Операцию аналогичную pull также можно выполнить:
rsync -a username@remote_host:/home/username/directory directory1

Если вы передаете файлы, которые еще не были сжаты, например, текстовые файлы, то включить сжатие можно с помощью опции -z:

rsync -az source destination

Для отображения процесса синхронизации можно использовать флаг -P:
rsync -azP source destination

Основные ключи:

-a, режим архивирования, включает ключи -rlptgoD;
-r, каталоги копируются рекурсивно;
-l, копировать символические ссылки «как есть», то есть rsync не будет следовать по ним, обращаясь к файлам;
-p, сохранение прав доступа к файлам;
-t, сохранение времени модификации файлов;
-g, -o, сохранение владельца и группы файла;
-D, сохранение файлов устройств и специальных файлов;
-u, режим обновления, пропускаются файлы на получателе, имеющие более позднюю дату модификации, чем в источнике;
-v, выводит имена копируемых файлов;
-q, не выводит сообщения об ошибках;
-z, включение режим сжатия;
-P, отображение прогресса при копировании;
-с, проверка файлов по контрольной сумме, а по размеру и дате модификации. Дополнительная нагрузка на процессор, сильно увеличивает время синхронизации;
—ignore-errors, продолжение копирования и удаления даже после появления ошибок;
—max-delete, максимальное число удаляемых за один раз файлов и каталогов;
—files-from=FILE, задается список файлов и директорий для копирования в файле;
-e ssh, использование при копировании ssh;
—bwlimit=KBPS, ограничение скорости копирования.

/usr/bin/rsync -rz -e "ssh -p 2566" /data/backup/ dump@192.168.66.87:/var/services/homes/dump/backup/agis_dump/backup/

Открытые порты

Netstat — широко используемый инструмент для сбора информации о сетевой подсистеме Linux. Вы можете использовать его для вывода всех открытых портов следующим образом:

$ sudo netstat -ltup

Флаг -l указывает netstat вывести все прослушивающие сокеты (сокет это ip + порт), -t показывает все TCP-соединения, -u отображает все соединения UDP, а -p позволяет выводить имя приложения/программы, прослушивающее порт.

Подавлять ошибки в bash

find / -name file2find 2>/dev/null

https подключение с помощью CURL из командной строки

Добавить флаг -k к вызову, чтобы разрешить небезопасные соединения

curl -k https://129.10.1.10:30345

Проверка версии Ubuntu из терминала

$ lsb_release -a

Grep

Чтобы не выводить все строки с совпадением, а вывести только имя файла, нужно воспользоваться конструкцией (https://eternalhost.net/base/vps-vds/bash-rabota-so-strokami):

$ grep -I "devir" */*/package.*
node_modules/common-tools/package.json:    "url": "http://git.devir.kz:10080/root/common-tools.git"
node_modules/communication-layer/package.json:    "url": "http://git.devir.kz/root/communication-layer.git"
node_modules/data-layer/package.json:    "url": "http://git.devir.kz:10080/root/data-layer.git"
node_modules/zander-data-models/package.json:    "url": "http://git.devir.kz:10080/root/zander-data-models.git"
node_modules/zander-data-models/package.json:    "data-layer": "git+http://git.devir.kz:10080/root/data-layer.git"
node_modules/zander-support/package.json:    "url": "http://git.devir.kz:10080/root/zander-support.git"

Nano. Замена. Жмем ALT+R или Ctrl

Вводим, что ищем, затем на что меняем. Клавишей Y мы подтверждаем одну замену, а клавишей A — заменить все.

Systemd (systemctl): управление автозагрузкой служб в Linux

В большистве популярных современных популярных дистрибутивов Linux (CentOS 7, RHEL, Debian, Fedora и Ubuntu) в качестве демона автозагрузки вместо init.d используется systemd. Systemd – менеджер системы и служб Linux, используется для запуска других демонов и управления ими в процессе работы, использует unit-файлы из /etc/systemd/system (init.d использовал скрипты из каталога /etc/init.d/). Systemd позволяет распараллелить запуск служб в процессе загрузки ОС, тем самым ускоряя запуск.

Для управления system используется команда systemctl.

Для начала, после загрузки системы, мы проверим список юнитов, которые в данный момент добавлены в systemd:

# systemctl list-units
  UNIT                                                                                                  LOAD   ACTIVE SUB       DESCRIPTION
  proc-sys-fs-binfmt_misc.automount                                                                     loaded active waiting   Arbitrary Executable File Formats File System Automount P
  sys-devices-pci0000:17-0000:17:00.0-0000:18:00.0-0000:19:03.0-0000:1a:00.0-net-eno1.device            loaded active plugged   Ethernet Connection X722 for 10GbE SFP+
  sys-devices-pci0000:17-0000:17:00.0-0000:18:00.0-0000:19:03.0-0000:1a:00.1-net-eno2.device            loaded active plugged   Ethernet Connection X722 for 10GbE SFP+
  sys-devices-pci0000:17-0000:17:00.0-0000:18:00.0-0000:19:03.0-0000:1a:00.2-net-eno3.device            loaded active plugged   Ethernet Connection X722 for 1GbE
  sys-devices-pci0000:17-0000:17:00.0-0000:18:00.0-0000:19:03.0-0000:1a:00.3-net-eno4.device            loaded active plugged   Ethernet Connection X722 for 1GbE
  sys-devices-pci0000:17-0000:17:02.0-0000:1c:00.0-host0-target0:2:0-0:2:0:0-block-sda-sda1.device      loaded active plugged   AVAGO 1
  sys-devices-pci0000:17-0000:17:02.0-0000:1c:00.0-host0-target0:2:0-0:2:0:0-block-sda-sda2.device      loaded active plugged   AVAGO 2
  sys-devices-pci0000:17-0000:17:02.0-0000:1c:00.0-host0-target0:2:0-0:2:0:0-block-sda-sda3.device      loaded active plugged   AVAGO 3
  sys-devices-pci0000:17-0000:17:02.0-0000:1c:00.0-host0-target0:2:0-0:2:0:0-block-sda.device           loaded active plugged   AVAGO

Список unit-файлов можно получить командой:

# systemctl list-unit-files

Данная команда отобразит все доступные юнит-файлы (не зависимо от того, были они загружены в systemd после загрузки ОС или нет).

Чтобы вывести список активных сервисов и их состояние, выполните:

# systemctl list-units -t service

Следующая команда выведет список юнитов, которые загрузил или пытался загрузить systemd. Так как после запуска некоторые юниты могут стать неактивными, с помощью флага —all вы получите полный список.

# systemctl list-units --all

Как видим из списка, здесь отображаются даже сервисы, которые не были найдены на диске «not-found».

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

—state — используется для определения состояния демона Load, Active, Sub
—type — позволяет фильтровать юниты по их типу.
Примеры:
выведет список только активных юнитов

# systemctl list-units --all --state=active

выведет список юнитов, которые являются сервисом.

# systemctl list-units —type=service

Добавление сервиса в systemd

Для управления сервисами в systemd используется особый синтаксис. После имени серверсв в конце нужно указывать .service. Например:
команда добавит в автозагрузку веб-сервер nginx

systemctl enable nginx.service 

Данная команда создаст символическую ссылку на копию файла, указанного в команде сервиса, в директории автозапуска systemd.

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

# systemctl status nginx.service

При выводе нужно обратить внимание на строку:

Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)

Значение enabled означает что данный сервис загружается автоматически (добавлен в автозагрузку). Если сервис не загружается автоматом, здесь буде указано disabled.

Удаление сервиса из systemd

Вы можете удалить сервис из автозагрузки, чтобы он не запускался после старта Linux (при этом сам сервис с сервера не удаляется). Чтобы удалить сервис из автозагрузки, выполните команду:

# systemctl disable нужный_сервис

Например, чтобы удалить из автозагрузки nginx, выполните:

# systemctl disable nginx.service
Removed symlink /etc/systemd/system/multi-user.target.wants/nginx.service
# systemctl disable gitlab-runner.service
Removed /etc/systemd/system/multi-user.target.wants/gitlab-runner.service.

После выполнения команды, симлинк на файл сервиса будет удален из директории systemd. Можно проверить, есть ли юнит в автозагрузке:

# systemctl is-enabled sshd

Systemd: маскировка юнитов

В моей практике встречались «вредные» сервисы, которые после удаления их из автозагрузки, все равно там оставались и запускались после рестарта ОС. Чтобы решить этот вопрос, можно замаскировать сервис:

# systemctl mask nginx.service

И после этого, он вообще не будет запускаться, ни вручную, ни после перезагрузки ОС:

Created symlink from /etc/systemd/system/nginx.service to /dev/null.
# service nginx restart
Redirecting to /bin/systemctl restart nginx.service
Failed to restart nginx.service: Unit is masked.

Снять маску можно командой:

# systemctl unmask nginx.service
Removed symlink /etc/systemd/system/nginx.service.

Это работает, если встречается ошибка

# systemctl start vsftpd
Failed to start vsftpd.service: Unit vsftpd.service is masked.

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

Таким нехитрым способом, можно избавить себя от удаления сервиса, даже если он не удаляется из автозагрузки systemd.

systemctl list-units

To list all loaded services on your system (whether active; running, exited or failed, use the list-units subcommand and –type switch with a value of service.

# systemctl list-units –type=service

OR

# systemctl –type=service

And to list all loaded but active services, both running and those that have exited, you can add the –state option with a value of active, as follows.

# systemctl list-units –type=service –state=active

OR

# systemctl –type=service –state=active

But to get a quick glance of all running services (i.e all loaded and actively running services), run the following command.

# systemctl list-units –type=service –state=running

OR

# systemctl –type=service –state=running

http://rus-linux.net/MyLDP/boot/systemd_5_masking_units.html

grub восстановление

mount /dev/sda /mnt
mount –bind /dev /mnt/dev
mount –bind /dev/pts /mnt/dev/pts
mount –bind /proc /mnt/proc
mount –bind /sys /mnt/sys
chroot /mnt
grub-install /dev/sda
grub-install –rechek /dev/sda
update-grub
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev/pts
umount /mnt/dev
umount /mnt

grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won’t be possible.
grub-install: error: embedding is not possible, but this is required for cross-disk install

ВОССТАНОВЛЕНИЕ ЗАГРУЗЧИКА GRUB 2 В LINUX UBUNTU
Администраторы и пользователи Linux Ubuntu иногда сталкиваются с проблемой восстановления/переустановки загрузчика Grub 2. Типичные ситуации, которые приводят к необходимости восстановления загрузчика — это инсталляция второй операционной системы, случайное повреждение вследствие неосторожности и т.п.

Если система вдруг перестала загружаться, не стоит отчаиваться. Восстановить загрузчик Grub 2 можно с помощью Live CD или Live USB с операционной системой Linux Ubuntu.

ПОДГОТОВКА
Загрузитесь с Live CD или USB. Определите, если не знаете или не уверены, номер раздела жёсткого диска, используемого в качестве корневого. Сделать этом можно с помощью утилиты Disks, входящей в поставку Linux Ubuntu, или любым другим удобным способом. Например, /dev/sda2, /dev/sdb1. Обозначим раздел диска, используемый в качестве корневого восстанавливаемой системы, как /dev/sdXY, где X — это буква, обозначающая жёсткий диск, например, a, b, c и т.д., а Y — это номер корневого раздела.

ВОССТАНОВЛЕНИЕ
Смонтируйте корневой раздел /dev/sdXY восстанавливаемой системы в директорию /mnt Ubuntu Live, выполнив в терминале команду:

sudo mount /dev/sdXY /mnt
Далее нам потребуется создать синонимы в дереве файловой системы для некоторых директорий из Live Ubuntu. Для этого необходимо выполнить в терминале последовательно следующие команды:

sudo mount –bind /dev /mnt/dev
sudo mount –bind /dev/pts /mnt/dev/pts
sudo mount –bind /proc /mnt/proc
sudo mount –bind /sys /mnt/sys
Последнее действие позволит нам обращаться к директории /dev через путь /mnt/dev, к директории /dev/pts через путь /mnt/dev/pts и т.д.

На следующем шаге следует с помощью системного вызова chroot произвести операцию изменения корневого каталога на /mnt следующим образом:

sudo chroot /mnt
Теперь всё готово для восстановления загрузчика Grub 2. Выполним восстановление, заменив в командах ниже имя диска sdX на своё, например, sda, sdb и т.д. Выполните последовательно следующие команды:

grub-install /dev/sdX
grub-install –recheck /dev/sdX
update-grub
Если в процессе выполнения последних трёх команд отсутствовали сообщения об ошибках, то можно констатировать, что загрузчик Grub 2 восстановлен. Нам остаётся лишь в обратном порядке вернуться к системному корневому каталогу «живой» системы, размонтировать все синонимы каталогов, а также размонтировать корневой раздел восстановленной системы, выполнив последовательно команды:

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
sudo umount /mnt
Перезагрузите систему и убедитесь, что загрузчик Grub 2 восстановлен.

ВОЗМОЖНЫЕ ПРОБЛЕМЫ И ИХ РЕШЕНИЕ
Одной из наиболее распространённых проблем, с которой сталкиваются при восстановлении загрузчика Grub 2 описанным выше способом, является ошибка, вызванная отсутствием раздела c флагом bios_grub на жёстком диске с таблицей разделов GUID (GPT). Проблема проявляется во время выполнения команды:

grub-install /dev/sdX
в виде ошибки:

grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won’t be possible.
grub-install: error: embedding is not possible, but this is required for cross-disk install.
Причиной такой ошибки является либо отсутствие флага bios_grub на специальном разделе диска, либо полное отсутствие такого раздела на жёстком диске, который требуется для нормальной работы жёстких дисков с таблицей разделов GPT. В соответствии с технологией GPT на жёстком диске для осуществления загрузки операционных систем обязательно должен присутствовать служебный раздел «BIOS boot partition» с минимальным размером 1-2 Мб и флагом bios_grub.

Если вы столкнулись с ситуацией отсутствия раздела — создайте его, используя утилиту Disks из Ubuntu Live или любым другим удобным способом. Я рекомендую «отрезать» раздел размером 2 Мб от раздела подкачки, который, как правило, присутствует на жёстких дисках с Linux Ubuntu. Можно сначала удалить раздел подкачки, затем создать требуемый служебный раздел с файловой системой EXT4 размером 2 Мб и после из оставшегося свободного неразделённого пространства жёсткого диска вновь создать раздел покачки swap.

Кроме того, возможно потребуется отсортировать с помощью утилиты gdisk разделы на диске, чтобы порядок их нумерации соответствовал физическому размещению по отношению к началу дискового пространства (для тех, кто любит порядок). Сделать это можно командой «s» в интерфейсе утилиты gdisk, доступ к которому для диска /dev/sdX осуществляется следующим образом:

sudo gdisk /dev/sdX
где sdX следует заменить на ваш диск (не забудьте перед выходом из утилиты записать все изменения на диск командой «w»). При этом придётся отредактировать файл /etc/fstab на восстанавливаемой системе, заменив либо прямые указатели разделов диска вида /dev/sdXY на новые, которые образовались после сортировки, либо на UUID разделов диска, которые можно узнать, используя команду:

sudo blkid
Когда служебный раздел диска размером 2 Мб (вообще говоря максимальный размер служебного раздела не ограничен, но в нашем случае 2 Мб будет достаточно) создан либо если такой раздел существовал, но на нём отсутствовал флаг bios_grub, необходимо окончательно устранить проблему, которая не позволяет восстановить загрузчик, как описано выше. Для этого установим флаг bios_grub на созданный (или проблемный) служебный раздел GPT:

sudo parted /dev/sdX set Y bios_grub on
где sdX следует заменить на идентификатор вашего диска, на котором расположен служебный раздел, например: sda, sdc и т.п., а «Y» соответствует номеру служебного раздела. Например, если служебный раздел размером 2 Мб для GPT — это sdb3, то в таком случае sdX следует заменить на sdb, а «Y» — на 3.

После проведённых манипуляций с дисками следует повторить процедуру восстановления Grub 2 заново так, как это указано выше.

Обратите внимание, что GPT GUID-идентификатор служебного раздела GPT после всех операций изменится на EF02, который соответствует «BIOS boot partition». Указанное произойдёт даже если в процессе создания/форматирования раздела была использована файловая система Ext4 или любая другая.

В завершение замечу, что проверить таблицу разделов диска, в том числе GPT GUID разделов и т.п., можно с помощью утилиты gdisk:

sudo gdisk /dev/sdX
с использованием команды «p» после входа в интерфейс утилиты, пример:

root@dump:~# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Model: ST1000NM0033-9ZM
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): FB8EEE82-3CE5-4F18-881A-473361590CFD
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 5485 sectors (2.7 MiB)

Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02
2 4096 1953521663 931.5 GiB 8300

Просматривать же флаги, установленные на разделах дисков, очень удобно с помощью другой утилиты parted:

sudo parted /dev/sdX print
Пример:
root@dump:~# parted /dev/sda print
Model: ATA ST1000NM0033-9ZM (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1000GB 1000GB ext4

Теперь загрузимся с USB в Kubuntu Live.
Проверим EFI раздел:

kubuntu@kubuntu:~$ efibootmgr
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0000,0003,0001
Boot0000* Windows Boot Manager
Boot0001* Hard Drive
Boot0003* UEFI: JetFlashTranscend 16GB

Boot0000 — виндовый загрузчик
Boot0001 — дефолтный загрузчик
Boot0003 — флешка с Kubuntu Live
Обратите внимание, что список загрузчиков не привязан к одному физическому диску как в MBR. Он хранится в NVRAM.

Можем также сразу посмотреть, что же в этом разделе, подмонтировав его:
kubuntu@kubuntu:~$ sudo mkdir /media/efi
kubuntu@kubuntu:~$ sudo mount /dev/sda2 /media/efi

Там окажутся следующие файлы:
EFI
|–Boot
| |–bootx64.efi # дефолтный загрузчик
|–Microsoft
|–Boot
|–bootmgfw.efi # основной виндовый загрузчик
|–# много других файлов

После завершения установки Kubuntu, заходим в систему и проверяем, какие файлы появились на efi разделе (монтировать уже не нужно):
user@kubuntu:~$ sudo ls /boot/efi/EFI
Boot Microsoft ubuntu
user@kubuntu:~$ sudo ls /boot/efi/EFI/ubuntu
grub.cfg grubx64.efi MokManager.efi shimx64.efi

Смотрим, как теперь выглядит список загрузчиков:
user@kubuntu:~$ efibootmgr -v
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0002,0000,0003,0001
Boot0000* Windows Boot Manager HD(2,96800,32000,c4f37e07-0441-4967-a1ac-75fb5a36e4f3)File(\EFI\Microsoft\Boot\bootmgfw.efi)
Boot0001* Hard Drive BIOS(2,0,00)
Boot0002* ubuntu HD(2,96800,32000,c4f37e07-0441-4967-a1ac-75fb5a36e4f3)File(\EFI\ubuntu\shimx64.efi)
Boot0003* ubuntu HD(2,96800,32000,c4f37e07-0441-4967-a1ac-75fb5a36e4f3)File(EFI\Ubuntu\grubx64.efi)

Из чего состоят записи в /etc/fstab

Первое поле (fs_spec).

Это поле описывает специальное блочное устройство, удалённую файловую систему или образ файловой системы для loop устройства, которое нужно смонтировать, или файл подкачки, или раздел подкачки, который нужно включить.

Для обычных монтирований он будет содержать (ссылку на) узел специального блочного устройства (созданный утилитой mknod) для монтируемого устройства, например, «/dev/cdrom» или «/dev/sdb7». Для монтирования NFS это поле – :

, например, «knuth.aeb.nl:/». Для файловых систем без хранилища можно использовать любую строку, которая будет отображаться, например, в выводе df. Обычно для procfs используется «proc»; а для tmpfs используются «mem», «none» или «tmpfs». Другие специальные файловые системы, такие как udev и sysfs, обычно не указываются в fstab.

Вместо имени устройства можно указать LABEL= или UUID=. Это рекомендуемый метод, поскольку имена устройств часто совпадают с порядком обнаружения оборудования и могут измениться при добавлении или удалении других дисков. Например, «LABEL=Boot» или «UUID=3e6be9de-8139-11d1-9106-a43f08d823a6». (Используйте инструмент, специфичный для файловой системы, например e2label, xfs_admin или fatlabel, чтобы установить LABEL в файловых системах).

Также можно использовать ARTUUID= и PARTLABEL=. Эти идентификаторы разделов поддерживаются, например, для таблицы разделов GUID (GPT).

Чтобы узнать UUID всех дисков используйте любую из следующих команд:

1
2
3
4
findmnt --real -o TARGET,SOURCE,FSTYPE,UUID
mount | grep "^/dev"
blkid
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID

Чтобы узнать UUID определённого диска, используйте любую из следующих команд:

1
2
3
findmnt --real -o TARGET,SOURCE,FSTYPE,UUID /dev/ДИСК
blkid /dev/ДИСК
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID /dev/ДИСК

Второе поле (fs_file).

Это поле описывает точку монтирования (цель) для файловой системы. Для разделов подкачки это поле должно быть указано как «none». Если имя точки монтирования содержит пробелы или табуляции, их можно использовать как «\040» и «\011» соответственно.

Третье поле (fs_vfstype).

Это поле описывает тип файловой системы. Linux поддерживает множество типов файловых систем: ext4, xfs, btrfs, f2fs, vfat, ntfs, hfsplus, tmpfs, sysfs, proc, iso9660, udf, squashfs, nfs, cifs и многие другие.

Запись подкачки в этом поле должна содержать «swap».

Запись «none» полезна для привязки или перемещения монтирований.

Можно указать несколько типов в списке, разделённом запятыми.

mount и umount поддерживают подтипы файловых систем. Подтип определяется суффиксом «.subtype». Например, «fuse.sshfs». Рекомендуется использовать нотацию подтипа, а не добавлять префикс в первое поле fstab (например, «sshfs#example.com» является устаревшим).

Четвёртое поле (fs_mntops).

В этом поле описаны параметры монтирования, связанные с файловой системой.

Поле отформатировано как список параметров, разделённых запятыми. Оно содержит как минимум тип монтирования (ro или rw), а также любые дополнительные параметры, соответствующие типу файловой системы (включая параметры настройки производительности).

Основные параметры, не зависящие от файловой системы:

defaults

использовать параметры по умолчанию: rw, suid, dev, exec, auto, nouser и async.

noauto

не монтировать при использовании команды «mount -a» (например, во время загрузки)

user (пользователь)

позволяет монтировать указанному пользователю

owner (владелец)

позволяет монтировать указанному владельцу устройства

комментарий

или x- для использования программами поддержки fstab

nofail

не сообщает об ошибках для этого устройства, если оно не существует.

Пятое поле (fs_freq).

Это поле используется dump, чтобы определить, какие файловые системы нужно выгрузить. По умолчанию, если не присутствует, — ноль (не выгружать).

Шестое поле (fs_passno).

Это поле используется fsck для определения порядка, в котором выполняется проверка файловых систем во время загрузки. Корневая файловая система должна быть указана с fs_passno равным 1.

Для других файловых систем значение fs_passno должно быть равно 2. Файловые системы на диске будут проверяться последовательно, но файловые системы на разных дисках будут проверяться одновременно, чтобы использовать параллелизм, доступный на оборудовании. По умолчанию нулевое значение (не использовать fsck), если оно отсутствует.

Пример файла /etc/fstab с объяснением значений записей

Рассмотрим пример реального файла /etc/fstab на моей системе:

1
2
3
4
5
6
7
8
9
#
# /dev/nvme0n1p2
UUID=01e4d4f5-698f-4dc2-987b-270499457f48   /           ext4        rw,relatime 0 1
 
# /dev/nvme0n1p1
UUID=7327-B4E4          /boot       vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro   0 2
/dev/sda   /mnt/disk_d  ext4    rw,relatime 0   0
 
#/swapfile none swap defaults 0 0

Этот файл отчасти создан автоматически, отчасти дописан вручную.

Автоматическая часть была создана командой в соответствии с «Инструкцией по установке Arch Linux»:

 
1
genfstab -U -p /mnt >> /mnt/etc/fstab

Самая первая строка является комментарием и просто напоминает значение полей.

Затем строка «# /dev/nvme0n1p2» также является комментарием, она содержит удобное для восприятия имя диска, чтобы было проще ориентироваться, к какому диску относится последующая запись.

Следующая строка начинается с «UUID=01e4d4f5-698f-4dc2-987b-270499457f48» – это уникальный идентификатор диска. Вторым полем идёт «/», это означает, что диск смонтирован в корень файловой системы. Затем «ext4» указывает на тип файловой системы. Затем идут опции монтирования «rw,relatime». Затем идёт «0», означающий, что не нужно выгружать файловые системы. Последней идёт «1», означающая, что в случае возникновения проблем этот диск должен быть проверен первым.

Следующая строка вновь является комментарием, показывающим нам, к какому диску она относится «# /dev/nvme0n1p1».

Затем идёт идентификатор диска «UUID=7327-B4E4», обратите внимание, что он намного короче предыдущего — видимо, зависит от файловой системы. Затем идёт точка монтирования «/boot», то есть это загрузочный раздел, который монтируется в указанную папку. Далее тип файловой системы «vfat». Затем опции монтирования «rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro» – все опции монтирования будут рассмотрены в конце данной статьи, поэтому не будем на них останавливаться. Затем идёт «0», означающий, что не нужно выгружать файловые системы, затем идёт «2», означающая, что диск должен быть проверен вторым.

На этом заканчивается автоматически сгенерированная часть и начинается часть дописанная мною вручную.

После установки системы, второй внутренний диск мной был отформатирован в файловую систему ext4, у этого диска название /dev/sda и он смонтирован в директорию /mnt/disk_d с опциями «rw,relatime». Вместо имени диска /dev/sda можно указать его UUID — но это не критично.

Далее идёт закомментированная строка, подключающая файл подкачки «#/swapfile none swap defaults 0 0». Поскольку строка закомментированна, это означает, что файл подкачки не используется.

Про создание и удаление файлов подкачки смотрите статьи:

  • Как в Kali Linux создать или увеличить файл подкачки (Swap)
  • Файл подкачки и раздел подкачки в Arch Linux: что выбрать и как добавить Swap
  • Как в Linux Mint и Ubuntu увеличить и раздел подкачки. Как в Linux создать файл подкачки Swap
  • Как создать раздел подкачки не на системном диске. Как переместить раздел подкачки на другой диск

Как управлять опциями монтирования с помощью /etc/fstab

Помните, что при любом монтировании, даже если он

о происходит не в начале запуска компьютера, а в любое другое время, программа mount сверяется с опциями из файла /etc/fstab. По этой причине можно прописать необходимые опции и точки монтирования в этом файл.

К примеру, у меня есть внешний USB диск, который при подключении к компьютеру по умолчанию монтируется в «/run/media/mial/Новый том».

Мне такое название точки монтирования не нравится, я хочу, чтобы именно этот диск монтировался в /mnt/disk_e (как на моём старом компьютере это был диск E:\).

В этом случае мне нужно отмонтировать диск и заново его монтировать примерно следующей командой:

1
sudo mount -t ntfs -o rw,utf8 /dev/sdc1 /mnt/disk_e

Это ненужные действия, которые можно избежать, прописав опции монтирования и точку монтирования в файле fstab. Открываем этот файл для редактирования:

1
sudo gedit /etc/fstab

Мне необходимо узнать UUID данного диска (поскольку при подключении он иногда получает имя /dev/sdc1, иногда /dev/sdd1 или другие, например, если к компьютеру уже подключены другие диски или флешки). UUID диска можно узнать например так:

1
blkid /dev/sdc1

Вывод:

1
dev/sdc1: LABEL="M-PM-^]M-PM->M-PM-2M-QM-^KM-PM-9 M-QM-^BM-PM->M-PM-<" BLOCK_SIZE="512" UUID="26FC3023FC2FEC2D" TYPE="ntfs" PARTUUID="fd8237ec-01"

Теперь в файл /etc/fstab я добавляю следующие строки:

1
2
# /dev/sdc1 1.5 ТБ внешний USB
UUID=26FC3023FC2FEC2D   /mnt/disk_e ntfs    nofail,rw,utf8  0   0

Первая из них — комментарий, который напомнит мне, к чему относится эта запись.

Затем идёт строка, с описанными выше полями. В первом поле я идентифицирую диск — я использую не его имя, а UUID, поскольку имя устройства может меняться. Затем указываю точку монтирвоания (/mnt/disk_e). Затем тип файловой системы (ntfs). Затем идут опции, обратите внимание, что ОБЯЗАТЕЛЬНО нужно добавить опцию nofail, иначе если этот диск не подключён к компьютеру во время загрузки, компьютер может вовсе не загрузиться из-за ошибки в файле /etc/fstab. Затем идут ещё две цифры необязательных полей (отмена выгрузки файловых систем и отмена проверки).

Теперь в любое время при подключении этого диска он будет автоматически смонтирован в /mnt/disk_e. Это можно проверить с помощью команды:

1
findmnt --real

Примечание: вы можете обратить внимание, что опции монтирования из файла /etc/fstab и опции монтирования на скриншоте не совпадают. Дело в том, что программа mount может использовать программы-помогатели, которые фактически и выполняют монтирования. При вызове программ-помогателей некоторые опции могут теряться или игнорироваться программой, которая в конечном счёте выполняет монтирование. По этой же причине, кстати, вместо файловой системы ntfs указана fuseblk — это означает, что работу по монтированию диска выполнила FUSE.

Смотрите также: Что такое FUSE. Что такое файловая система fuseblk

Ещё одним следствием описания монтирования в файле /etc/fstab является то, что для указанных там дисков можно использовать сокращённую команду монтирования — указывая только точку монтирования или только имя устройства, например:

1
sudo mount /mnt/disk_e

Эта команда сработает как надо, смонтировав диск /dev/sdc1 в /mnt/disk_e — недостающие сведения и опции монтирования будут взяты из /etc/fstab.

.

Сеть (bonding)

$ cat /etc/netplan/00-installer-config.yaml
network:
 version: 2
 renderer: networkd
 ethernets:
  enp5s0f0:
    dhcp4: false
    dhcp6: false
  enp5s0f1:
    dhcp4: false
    dhcp6: false
 bonds:
  bond0:
   dhcp4: false
   dhcp6: false
   interfaces:
     - enp5s0f0
     - enp5s0f1
   addresses: [192.168.60.38/24]
   gateway4: 192.168.60.2
   parameters:
     mode: balance-rr
   nameservers:
     addresses: [192.168.60.2,8.8.8.8,8.8.4.4]
$ netplan apply

mode=0 (balance-rr)
Последовательно кидает пакеты, с первого по последний интерфейс.
mode=1 (active-backup)
Один из интерфейсов активен. Если активный интерфейс выходит из строя (link down и т.д.), другой интерфейс заменяет активный. Не требует дополнительной настройки коммутатора
mode=2 (balance-xor)
Передачи распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.
mode=3 (broadcast)
Все пакеты на все интерфейсы
mode=4 (802.3ad)
Link Agregation — IEEE 802.3ad, требует от коммутатора настройки.
mode=5 (balance-tlb)
Входящие пакеты принимаются только активным сетевым интерфейсом, исходящий распределяется в зависимости от текущей загрузки каждого интерфейса. Не требует настройки коммутатора.
mode=6 (balance-alb)
Тоже самое что 5, только входящий трафик тоже распределяется между интерфейсами. Не требует настройки коммутатора, но интерфейсы должны уметь изменять MAC.

Как в Ubuntu посмотреть и изменить скорость сетевой карты

$ sudo ethtool enp5s0f1
Settings for enp5s0f1:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: on (auto)
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

Как видим, это гигабитная сетевая. Чтобы принудительно понизить на ней скорость до 100 Мбит/с в режиме Full Duplex и отключить автоопределение настроек, выполним простую команду:

$ sudo ethtool -s enp5s0f1 duplex full speed 100 autoneg off

Вернуть сетевую карту в гигабитный режим можно командой:

$ sudo ethtool -s enp5s0f1 duplex full speed 1000 autoneg off

Использование Systemctl для управления службами и блоками Systemd

systemd — это система инициализации и системный диспетчер для дистрибутивов Linux, управление службами

https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units-ru
Основополагающая цель системы инициализации заключается в инициализации компонентов, которые должны запускаться после загрузки ядра Linux (традиционно называются компоненты пользовательского пространства). Система инициализации также используется для управления службами и демонами для сервера и в любой момент времени работы системы.
В systemd целью большинства действий являются «модули», являющиеся ресурсами, которыми systemd знает, как управлять. Модули распределяются по категориям по типу ресурса, который они представляют, и определяются файлами, известными как файлы модулей. Тип каждого модуля можно вывести из суффикса в конце файла.
Для задач по управлению службами целевым модулем будут модули службы, которые имеют файлы модулей с суффиксом .service. Однако для большинства команд по управлению службами вы можете не использовать суффикс .service, поскольку systemd достаточно умна, чтобы знать, что вы, возможно, хотите работать со службой при использовании команд по управлению службами.

# systemctl start openvpn@agisVpn.service
# systemctl status openvpn@agisVpn.service
# systemctl enable openvpn@agisVpn.service
# systemctl list-units
# systemctl list-units -all
# systemctl list-unit-files | grep 'openvpn'
# systemctl list-unit-files --type=service | grep 'openvpn'
# service openvpn status
# systemctl --version

OpenVpn клиент

https://community.openvpn.net/openvpn/wiki/Systemd?__cf_chl_jschl_tk__=pmd_N5MWi7ViI9dVnmtybDC.fASoWF2CCtJDvdCgAK8BwNE-1631889941-0-gqNtZGzNAeWjcnBszQlR

У каждого модуля есть свои особенности, так же и для openvpn клиента.

Place your client configuration file in /etc/openvpn/client (notice however that, due to an outdated version of openvpn, some distrubitions, like Ubuntu 20.10, look for configuration files under /etc/openvpn instead of /etc/openvpn/client. In caso of doubt, check the specific error message in journalctl -xe)
Use the openvpn-client@.service like so:
$ sudo systemctl start openvpn-client@{Client-config}
Replace {Client-config} with the name of your config file without the .conf
Далее пример для Ubuntu 20.04

# ls -1 /etc/openvpn
agisVpn.conf
pass.txt
update-resolv-conf
# systemctl start openvpn@agisVpn.service
# systemctl status openvpn@agisVpn.service
# systemctl enable openvpn@agisVpn.service

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

sudo systemctl restart openvpn@agisVpn.service

Если данное приложение может перезагрузить файлы конфигурации (без перезапуска), вы можете выдать команду reload для инициализации этого процесса:

sudo systemctl reload openvpn@agisVpn.service

Если вы не уверены, есть ли у службы функция перезагрузки своей конфигурации, можно использовать команду reload-or-restart. Это перезагрузит необходимую конфигурацию при наличии. В противном случае будет перезагружена служба для выбора новой конфигурации:

sudo systemctl reload-or-restart openvpn@agisVpn.service

Включение и отключение служб

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

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

sudo systemctl enable openvpn@agisVpn.service

При этом будет создана символическая ссылка из системной копии служебного файла (обычно в /lib/systemd/system или /etc/systemd/system) в месте на диске, где systemd ищет файлы для автозапуска (обычно /etc/systemd/system/some_target.target.wants; что такое цель, мы рассмотрим далее в этом руководстве).

Чтобы отключить автоматический запуск службы, можно ввести следующее:

sudo systemctl disable openvpn@agisVpn.service

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

Помните, что включение службы не запустит ее в текущем сеансе. Если вы хотите запустить службу и включить ее при загрузке, необходимо дать обе команды, start и enable.

Проверка статуса служб
Чтобы проверить статус службы в вашей системе, можно использовать команду status:

systemctl status openvpn@agisVpn.service

Список текущих модулей
Чтобы увидеть список всех активных модулей, о которых знает systemd, можно использовать команду list-units:

systemctl list-units

Это покажет вам список всех модулей, которые у systemd активны в системе

чтобы увидеть все модули, которые загрузила система systemd (или пыталась загрузить), независимо от их активности в данный момент, можно использовать следующий флаг –all:

systemctl list-units --all

APT (advanced packaging tool)

Apt (advanced packaging tool) – это программа для работы с пакетами программ в операционных системах Linux Debian, и основанных на них – Ubuntu, Linux Mint и т.д. По сути, apt – это терминальный (консольный) пакетный менеджер.

Основные команды:

  • list – список пакетов;
  • –upgradable – просмотр списка пакетов которые могут быть обновлены (есть новые версии в репозиториях)
  • –installed – просмотр списка всех установленных пакетов в системе
  • –manual-installed – просмотр списка пакетов, которые устанавливались в ручную пользователем
  • –all-version – просмотр вообще всех пакетов, описанных выше.
  • –verbose – отображение краткой информации (что это за пакет программы) по всем пакета
  • search – поиск пакетов по имени;
  • show – показать подробную информацию о пакете;
  • update – обновить списки доступных пакетов;
  • install – установить пакет;
  • remove – удалить пакет;
  • upgrade – установить доступные новые версии пакетов;
  • full-upgrade – полное обновление системы;
  • edit-sources – редактировать файл источников программного обеспечения.

Устновить пакет

# apt install -y vsftpd

Удалить пакет

# apt remove -y vsftpd

Cписок установленных пакетов

# apt list --installed

Найти все пакеты  php, используя команду grep :

# apt list --installed | grep php

Будет выполнено полное удаление пакета, включая конфигурационные файлы и зависимости, только рекомендованные программы останутся

# apt remove имя_пакета

Что если вы устанавливали программу из deb файла и теперь не знаете точно, как называется ее пакет, чтобы удалить?
Это очень просто узнать, например по исполняемому файлу, допустим исполняемый файл программы TimeShift находится по адресу /usr/bin/timeshift, теперь узнаем ее пакет:

# dpkg -S /usr/bin/timeshift
timeshift: /usr/bin/timeshift

Как видите, пакет так и называется – timeshift. Теперь можно удалить программу через apt


ПОЧЕМУ ПОЯВИЛСЯ APT?
Раньше в Ubuntu использовалась очень мощная система управления пакетами дистрибутива Debian. Её преимущество в том, что она имеет очень много функций, полезных для разработчиков, но из этого возникает один недостаток, эти функции были разнесены по нескольким исполняемым файлам. Большинство возможностей обычные пользователи не используют, а те, которые они используют оказались разбиты на две утилиты: apt-get и apt-cache.

Ubuntu стремится к простоте. Утилита apt была реализована, чтобы упростить работу с менеджером пакетов и объединить несколько команд в одну. Функциональность apt-get и apt-cache была переписана, и несмотря на то, что теперь утилита полностью совместима с apt-get, её код новый.

Хотят ли люди признавать или нет, но apt-get – устаревший инструмент и практичность его применения очень сомнительна. Инструмент apt был разработан с нуля, чтобы быть еще эффективнее, он предназначен быть приятным для новых пользователей.

Главное отличие apt от apt-get – в том, что программа объединяет большинство команд apt-get и apt-cache. Вся функциональность теперь находится в одной утилите.

Разница apt и apt-get

https://linuxrussia.com/apt-vs-apt-get.html

https://linuxrussia.com/apt-vs-apt-get.html

 

 

Формат дисков Предупреждение fdisk. Надо в fdisk набрать команду g-create a new empty GPT partition table
# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

The size of this disk is 3.7 TiB (4000787030016 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).

Command (m for help): g

Created a new GPT disklabel (GUID: C9FE7125-08AF-2144-B845-007D2D172D66).
The old dos signature will be removed by a write command.

Command (m for help): p

Disk /dev/sdb: 3.65 TiB, 4000787030016 bytes, 7814037168 sectors

Дата и время создания файла. Изменить

$ touch -t 203203101513 asd
$ ls --full-time -la asd
-rw-rw-r-- 1 agis agis 4 2032-03-10 15:13:00.000000000 +0600 asd

И все

Umount file system

Посмотреть какие процессы держат файловую систему

umount: /data/backup: target is busy.
root@bill:~# lsof | grep '/data/backup' // sudo lsof /dev/sda1
sftp-serv 1763348 bill 3r REG 8,17 134705288722 33685506 /data/backup/month/Aug_agis-2022-08-01_00-10-01.tgz
root@bill:~#

Можно удалить процесс или дождаться его окончания

Или насильно (forse) отмонтировать файловую систему

umount -f /data/backup

И все

Вам может быть интересно
  • OPC
  • Gnome
  • Сертификат ssl
  • Replica set
  • VPN server
  • MySql
  • Copyright 2020 AGIS. Все права защищены. e-mail: info@agis.kz Tel: +7(7172) 998386