Налаштування
Я вже досить довгий час був програмістом, але я все ще трохи нечіткий щодо глибоких внутрішніх речей.
Тепер. Я добре знаю, що це не дуже добре:
- знищити -9 процес (погано)
- мимовільно витягніть шнур живлення на працюючий комп'ютер або сервер (гірше)
Однак іноді просто потрібно. Іноді процес просто не відповідає, незалежно від того, що ви робите, а іноді комп'ютер просто не реагує, незалежно від того, що ви робите.
Припустимо, що система працює з Apache 2, MySQL 5, PHP 5 та Python 2.6.5 через mod_wsgi.
Примітка: Мене найбільше цікавить Mac OS X, але відповідь, що стосується будь-якої системи UNIX, допоможе мені.
Моя стурбованість
Кожен раз, коли мені доводиться робити будь-яке з них, особливо друге, я протягом певного періоду часу дуже переживаю, щоб щось було порушено. Деякий файл десь може бути пошкодженим - хто знає, який файл? На комп'ютері є понад 1 000 000 файлів.
Я часто використовую OS X, тому запускаю операцію "Перевірити диск" через Disk Utility. Він не повідомить про проблеми, але мене все ще турбує це.
Що робити, якщо якийсь файл конфігурації десь накрутив. Або ще гірше, що якщо двійковий файл десь пошкоджений. Або файл сценарію десь пошкоджений. Що робити, якщо деяке обладнання пошкоджено?
Що робити, якщо я не дізнаюся про це до наступного місяця, за критичного сценарію, коли корупція чи збитки спричиняють катастрофу?
Або що робити, якщо цінні дані вже втрачені?
Моя надія
Я сподіваюся, що ці побоювання та турботи є безпідставними. Зрештою, зробивши це багато разів раніше, ще нічого по-справжньому поганого не відбулося. Найгірше, що мені довелося відремонтувати деякі таблиці MySQL, але я, здається, не втратив жодних даних.
Але, якщо мої турботи не є безпідставними, і справжня шкода може статися в будь-якій ситуації 1 або 2, то я сподіваюся, що є спосіб її виявити та запобігти цьому.
Мої питання
Можливо, це тому, що сучасні операційні системи розроблені так, щоб нічого не втратити в цих сценаріях? Чи може це бути тому, що сучасне програмне забезпечення створене для того, щоб нічого не втратити? Що з сучасним обладнанням дизайну? Які заходи вживаються, коли ви виймаєте вилку живлення?
Моє запитання полягає в тому, що для обох цих сценаріїв, що саме може піти не так, і які кроки потрібно вжити, щоб виправити це?
У мене складається враження, що одне, що може піти не так - деякі програми, можливо, не передали свої дані на диск, тому будь-які дуже недавні дані, які повинні були бути записані на диск (скажімо, за кілька секунд до вимкнення живлення ) може бути загублено. А як щодо цього? І чи може ця проблема 5-секундної втрати даних накрутити систему?
А як щодо корупції випадкових файлів, що ховаються десь у величезному лісі файлів на моїх жорстких дисках?
Як щодо пошкодження обладнання?
Що б мені найбільше допомогло
Детальний опис того, що відбувається всередині, коли ви або вбиєте -9 процес, або витягуєте живлення всієї системи. (здається миттєвим, але чи може хтось уповільнити це для мене?)
Пояснення всіх речей, які можуть піти не так у цих сценаріях, а також (приблизно, звичайно) ймовірностей (тобто це дуже малоймовірно, але це, ймовірно) ...
Опис заходів, що застосовуються в сучасному апаратному забезпеченні, операційних системах та програмному забезпеченні, щоб запобігти пошкодженню або пошкодженню при виникненні цих сценаріїв. (щоб потішити мене)
Інструкції, що робити після вбивства -9 або відключення живлення, крім "перевірки диска", щоб справді переконатися, що десь на диску не пошкоджено чи не пошкоджено.
Заходи, які можна вжити для зміцнення налаштувань комп’ютера, щоб, якщо щось потрібно було вбити або витягнути живлення, будь-який потенційний збиток зменшиться.
Деяка інформація про двійкові файли - чи не правда, що бінарний файл apache або бібліотека може мати випадковий байт або два пошкоджені в середині, які не з’являться і не спричинить проблему пізніше? Як я можу запевнити себе, що цього не сталося внаслідок підтягування сили або вбивства?
Дуже дякую!