Аварийный сигнал дистанционного управления

Логика I может показаться немного запутанным, но я думаю, что он должен улавливать режим отказа.

В основном шаги следующие:

  1. mke2fs
  2. монтирование файловой системы
  3. Создание файла с именем «format.complete» в файловой системе
  4. размонтирование файловой системы

Итак, нам нужно провести несколько тестов перед этим. . Логика была бы такой:

  1. Попытка смонтировать файловую систему в $ tmpmount с принудительным использованием ext2
  2. Если mount вернул код ошибки ==> Перейти к НЕ ОТФОРМАТИРОВАННЫЙ
  3. Если $ tmpmount / lost + found не существует, то смонтирована нечетная файловая система; не должно произойти, но ... umount . Goto NOT FORMATTED
  4. Если $ tmpmount / format.complete не существует, форматирование было прервано; umount . Перейти к НЕ ФОРМАТИРОВАТЬ
  5. umount ==> ФОРМАТИРОВАТЬ, перейти к следующему диску.

«НЕ ОТФОРМАТИРОВАННЫЙ» - это 4 исходных шага.

Мы можем сложить эти структуры вместе. В результате диски будут отформатированы только в том случае, если на них нет файла format.complete .

После форматирования всех дисков вы можете при желании перемонтировать каждый из них и удалить файл format.complete .

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

3
08.03.2017, 21:11
1 ответ

Рассмотрим этот пример Python3 .

Сервер A :

#!/usr/bin/env python3
# coding=utf8

from subprocess import check_call
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

# Restrict to a particular path
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/JRK75WAS5GMOHA9WV8GA48CJ3SG7CHXL',)

# Create server
server = SimpleXMLRPCServer(
    ('127.0.0.1', 8888),
    requestHandler=RequestHandler)

# Register your function
server.register_function(check_call, 'call')

# Run the server's main loop
server.serve_forever()

Сервер B :

#!/usr/bin/env python3
# coding=utf8

import xmlrpc.client

host = '127.0.0.1'
port = 8888
path = 'JRK75WAS5GMOHA9WV8GA48CJ3SG7CHXL'

# Create client
s = xmlrpc.client.ServerProxy('http://{}:{}/{}'.format(host, port, path))

# Call your function on the remote server
s.call(['alarm'])
1
27.01.2020, 21:30

Теги

Похожие вопросы