Я испытал некоторые проблемы в последние дни. Мой корневой раздел был случайным образом изменен RO
(только для чтения), когда были обнаружены некоторые ошибки ext4.
У меня есть еще один HDD, установленный на / MNT / файлы
, и все в этом каталоге синхронизируется с помощью NextCloud.
Когда корневая файловая система вымонтирована только для чтения, NextCloud начал случайно удалять мои данные. Это не проблема, насколько я всегда могу восстановить файлы из Trashbin на моем сервере. Процесс восстановления занимает много времени, поэтому я хотел немедленно убить NextCloud Clooud, когда Root FilesSystem remounts, чтобы предотвратить дополнительные потери данных.
Можно ли запустить killall NextCloud
, когда он намонтирует RO
?
в любом случае, я загрузил живой компакт-диск и исправил все обнаруженные ошибки, поэтому его не следует повторять , но я хочу быть уверенным, что это не влияет на мои данные снова.
Можно просмотреть файлы .manifest
, доступные на той же странице. Вы увидите, что разница заключается в используемом ядре. Вариант disk-kvm.img
имеет linux-image-kvm 5,8,0,1018,20
, в то время как другой образ имеет linux-image-5.8.0-43-generic
.
Первое является уменьшенным ядром для использования в виртуальных средах, оно может пропустить некоторые модули/конфигурационные элементы, но немного легче.
Второе - универсальное ядро, работающее везде. Вы могли бы использовать эти изображения, например, для развертывания новой голой системы с ними или в любом другом месте, где linux-kvm представляет ограничение, которое вы не хотите.
Если вы сомневаетесь и вам придется выбрать только один, то неквм образ должен работать везде.
Здесь вы можете прочитать больше о вариантах ядра Ubuntu
-121--910359-Для этого вида операции на основе оболочки Unix я использовал Pssh (Parallel ssh) это позволяет создавать списки серверов, а затем ssh команды выдает им запросы параллельно с помощью нескольких потоков.
Для установки на Ubuntu 20.04 и 20.10 просто запустите
sudo apt install pssh
Пакет включает команду pssh для этой цели.
Пример
Создайте файл hosts/cluster (скажем, myCluster.hosts)
192.168.0.100:2222
192.168.0.101:22
192.168.0.102:22
Затем этот файл с помощью команды pssh выполняет команду 'uptime' на каждом хосте.
parallel-ssh -h myCluster.hosts uptime
[1] 16:09:03 [SUCCESS] 192.168.0.100:2222 16:09:01 up 1:00, 2 users, load average: 0.07, 0.02, 0.00
[2] 16:09:03 [SUCCESS] 192.168.0.101:22 06:39:03 up 1:00, 2 users, load average: 0.00, 0.06, 0.09
[3] 16:09:03 [SUCCESS] 192.168.0.102:22 08:00:01 up 1:00, 8 users, load average: 0.00, 0.09, 0.18
Пакет также поставляется с параллельными версиями scp, rsync и т.д. очень мощные инструменты. Рекомендуется сначала использовать параметр сухого прогона/тестирования на одной машине, чтобы избежать разрыва всего кластера.
-121--910329- Это можно решить с помощью systemd
, если вы хотите проверять каждые 15 минут, доступна ли ваша корневая файловая система только для чтения или нет:
#!/bin/sh unset $rootfs unset $status rootfs=SDXn #Replace with sda1 eg. grep -E ''$rootfs'.*\ ro' /proc/mounts 2>&1 > /dev/null status=$? if [ $status = 0 ]; then echo "$rootfs is not okay" killall nextcloud exit 1 else echo "$rootfs is okay" exit 0 fi
системную службу
в /lib/systemd/system/
: [Unit] Description=Kill nextcloud client when filesystem is read-only [Service] Type=oneshot ExecStart=/path/to/script.sh
системный таймер
в /lib/systemd/system/
и включите/начните с systemctl [enable 'start] name_of_file.timer
:[Unit] Description=Kill nextcloud client when filesystem is read-only [Timer] OnCalendar=*:0/15 [Install] WantedBy=timers.target
Обратите внимание, что файлы .timer и .service должны иметь одинаковые имена.