Думаю, blockdev --setro
работает аналогичноchmod
:Это влияет только на будущие открытия объекта.
Но я могу предложить решение -вашей проблемы с обнаружением:
/proc/$PID/cwd
изменяется на /
после отложенного размонтирования. /proc/$PID/fd
, перемещаются вверх до /
, т.е. /mnt/tmp/output
становится /output
. Таким образом, вы можете сначала отфильтровать все процессы с помощью cmd /
. Среди них могут быть ложные срабатывания, но это очень быстро. Следующим шагом (, не обязательно полным, но, вероятно, более быстрым ), является проверка /proc/$PID/fd
всех этих процессов на наличие файлов, которые не существуют по указанным путям.
Полная, но, вероятно, не такая быстрая проверка заключается в запуске stat
для всех файлов в /proc/$PID/fd
. Он показывает оригинальное устройство. Таким образом, вы можете проверить это значение перед размонтированием, чтобы упростить задачу.
Проведите быстрое тестирование; экспортировать таблицу в PhpMyadmin и с помощью следующей команды в терминале.
mysqldump -u $UserName -p database table > /tmp/table.sql
Затем откройте оба файла SQL в текстовом -редакторе; разница должна быть распознана немедленно:
Я узнал множество комментариев, которые экспортируются из PHPMyAdmin, и способ INSERT
передачи данных. Например:
Экспортированный SQL имеет следующий заголовок:
-- phpMyAdmin SQL Dump
-- version 4.0.10.20
-- https://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Oct 10, 2019 at 03:48 AM
-- Server version: 5.1.73-log
-- PHP Version: 5.3.3
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
Выгруженный SQL имеет следующий заголовок:
-- MySQL dump 10.13 Distrib 5.1.73, for redhat-linux-gnu (x86_64)
--
-- Host: localhost Database: testing
-- ------------------------------------------------------
-- Server version 5.1.73-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;