![Команди адміністрування базових баз даних MySQL](/f/0f8ed96473315935e651cd3aed4c2347.png?width=100&height=100)
Системному адміністратору часто потрібно повторно виконувати команду протягом певного періоду часу. Часто такі завдання можна легко виконати простими команди cron. У більшості випадків це має спрацювати, але найкоротший період, протягом якого ви можете запустити команду cron, - це кожну 1 хвилину. Вірте чи ні, але у багатьох випадках це відбувається занадто повільно.
У цьому посібнику ви навчитесь простим прийомам створення сценаріїв для моніторингу або контролю за конкретною командою в безперервному стані, подібному до верхня команда (постійно контролювати процес та використання пам’яті) за промовчанням кожні 3 секунди.
Ми не зупинятимемося, щоб обговорити причини, чому вам потрібно так часто запускати команди. Я вважаю, що у кожного є різні причини для цього у їхній повсякденній роботі чи навіть у домашніх ПК та ноутбуках.
Подивіться - це команда Linux, яка дозволяє періодично виконувати команду або програму, а також показує вивід на екрані. Це означає, що ви зможете вчасно побачити результати програми. За замовчуванням годинник повторно запускає команду/програму кожні 2 секунди. Інтервал можна легко змінити відповідно до ваших вимог.
“Watch” надзвичайно простий у використанні, щоб перевірити його, ви можете відразу запустити термінал Linux і ввести таку команду:
# дивитися безкоштовно -м.
Наведена вище команда перевірить вільну пам'ять вашої системи та оновить результати безкоштовна команда кожні дві секунди.
Як видно з наведеного вище виводу, у вас є заголовок, що відображає інформацію про (зліва направо) інтервал оновлення, команду, яка виконується, та поточний час. Якщо ви хочете приховати цей заголовок, ви можете скористатися -t
варіант.
Наступне логічне питання - як змінити інтервал виконання. З цією метою можна використовувати -n
параметр, який визначає інтервал, з яким буде виконуватися команда. Цей інтервал задається в секундах. Отже, припустимо, ви хочете запустити свій script.sh
файл кожні 10 секунд, ви можете зробити це так:
# дивитися -n 10 script.sh.
Примітка що якщо ви виконаєте команду, як показано вище, вам потрібно буде cd
до каталогу (дізнайтеся Дізнайтеся 15 прикладів команд cd), де знаходиться сценарій, або іншим чином вказати повний шлях до цього сценарію.
Інші корисні параметри команди watch:
-b
-створює звуковий сигнал, якщо вихід команди не дорівнює нулю.-в
- Інтерпретує кольорові послідовності ANSI.-d
- виділяє зміни у виведенні команди.Скажімо, ви хочете контролювати зареєстрованих користувачів, час безперебійної роботи сервера та середнє завантаження на постійній фазі кожні кілька секунд, а потім використовуйте таку команду, як показано:
# годинник безперервної роботи.
Щоб вийти з команди, натисніть CTRL+C
.
Тут, "час роботи"
команда запускатиметься і відображатиме оновлені результати кожні 2 секунди за замовчуванням.
В Linux під час копіювання файлів з одного місця в інше за допомогою cp
команди, прогрес даних не відображається, щоб побачити хід копіювання даних, можна скористатися дивитися
команду разом з команда du -s для перевірки використання диска в реальному часі.
# cp ubuntu-15.10-desktop-amd64.iso/home/tecmint/& # дивитися -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso
Якщо ви вважаєте, що описаний вище процес надто складний для досягнення, я пропоную вам піти далі Команда попереднього копіювання, який показує прогрес даних під час копіювання.
Сон часто використовується для налагодження сценаріїв оболонки, але він також має багато інших корисних цілей. Наприклад, у поєднанні з за
або поки
петлі, ви можете отримати досить чудові результати.
Якщо ви новачок у сценаріях bash, ви можете ознайомитися з нашим посібником про цикли bash тут.
Якщо ви вперше чуєте про "спати"
команда, вона використовується для затримки чогось на певний проміжок часу. У сценаріях ви можете використовувати його, щоб повідомити сценарію виконати команду 1, почекати 10 секунд, а потім виконати команду 2.
За допомогою наведених вище циклів ви можете сказати bash виконати команду, sleep for N кількість секунд, а потім знову запустіть команду.
Нижче ви можете побачити приклади обох циклів:
# для i в {1..10}; do echo -n "Це тест у циклі $ i"; дата; спати 5; зроблено.
Один вищевказаний лайнер, буде запускати команда echo і відображати поточну дату, всього 10 разів, з 5 -секундним сном між стратами.
Ось зразок результату:
Це тест у циклі 1 Ср, 17 лютого 20:49:47 EET 2016. Це тест у циклі 2 Ср лют 17 20:49:52 EET 2016. Це тест у циклі 3 Ср лют 17 20:49:57 EET 2016. Це тест у циклі 4 Ср лют 17 20:50:02 EET 2016. Це тест у циклі 5 середа лют 17 20:50:07 EET 2016. Це тест у циклі 6 Ср лют 17 20:50:12 EET 2016. Це тест у циклі 7 середа лют 17 20:50:17 EET 2016. Це тест у циклі 8 Ср лют 17 20:50:22 EET 2016. Це тест у циклі 9 середа лют 17 20:50:27 EET 2016. Це тест у циклі 10 середа лют 17 20:50:32 EET 2016.
Ви можете змінити луна та дата команди за допомогою власних команд або сценарію та змінюйте інтервал сну відповідно до ваших потреб.
# поки правда; do echo -n "Це перевірка циклу while"; date; спати 5; зроблено
Ось зразок виводу:
Це тест while loopWed 17 лютого 20:52:32 EET 2016. Це перевірка while loopWed лютого 17 20:52:37 EET 2016. Це перевірка while loopWed лютого 17 20:52:42 EET 2016. Це перевірка while loopWed лютого 17 20:52:47 EET 2016. Це перевірка while loopWed лютого 17 20:52:52 EET 2016. Це перевірка while loopWed лютого 17 20:52:57 EET 2016.
Наведена вище команда буде працювати до тих пір або вбитий, або перерваний користувачем. Це може стати в нагоді, якщо вам потрібно запустити команду, що виконується у фоновому режимі, і ви не хочете розраховувати на це cron.
Важливо: При використанні вищевказаних методів настійно рекомендується встановити інтервал достатньо довгий, щоб дати достатньо часу вашій команді завершити виконання, до наступного виконання.
Зразки цього підручника є корисними, але не мають на меті повністю замінити утиліта cron. Ви вирішуєте, який із них підходить вам краще, але якщо нам доведеться розділити використання обох методів, я б сказав це:
Як завжди, якщо у вас є запитання чи зауваження, не соромтесь надсилати їх у розділі коментарів нижче.