Thứ năm, 30/08/2012 | 00:00 GMT+7

Cách viết tập lệnh Bash để khởi động lại chương trình server


Để đảm bảo các chương trình bắt buộc nhất vẫn trực tuyến nhiều nhất có thể (ngay cả sau khi server gặp sự cố hoặc khởi động lại), người ta có thể tạo một tập lệnh bash ngắn để kiểm tra xem chương trình có đang chạy hay không, và chạy nó nếu không. Bằng cách sử dụng cron để lập lịch thực thi tập lệnh một cách thường xuyên, ta có thể đảm bảo chương trình sẽ chạy lại khi nào nó gặp sự cố.

Tập lệnh Bash

Bước đầu tiên trong quá trình này là tạo chính tập lệnh. Có rất nhiều chương trình như chương trình mới, người giám sát và người theo dõi, có khả năng khởi động và giám sát các ứng dụng trên server riêng ảo theo một cách rất sắc thái— tập lệnh bash này sẽ chỉ cung cấp một lựa chọn bật.

Dưới đây là một tập lệnh mẫu khởi động apache nếu nó bị tắt.

nano launch.sh
#!/bin/sh

ps auxw | grep apache2 | grep -v grep > /dev/null

if [ $? != 0 ]
then
        /etc/init.d/apache2 start > /dev/null
fi

Khi bạn đã lưu tập lệnh, bạn phải cấp cho nó quyền thực thi để có thể chạy nó:

chmod +x launch.sh

Apache có thể được thay thế bằng bất kỳ ứng dụng bắt buộc nào. Nếu bạn muốn cài đặt tập lệnh cho nhiều ứng dụng, bạn có thể tạo một tập lệnh mới cho từng ứng dụng, đặt nó trên dòng riêng của nó trong file cron.

Cài đặt Cron

Với script trong tay, ta cần cài đặt lịch trình chạy. Tiện ích cron cho phép ta lập lịch vào những khoảng thời gian mà tập lệnh sẽ thực thi. Bắt đầu bằng cách mở file cron:

crontab -e

Cron có một giải thích chi tiết về cách thức hoạt động của hệ thống thời gian lúc đầu.

Một khi bạn biết tần suất bạn muốn tập lệnh chạy, bạn có thể viết vào dòng tương ứng.

Thông thường nhất mà tập lệnh có thể chạy trong cron là mỗi phút. Nếu bạn muốn cài đặt một mức tăng nhỏ như vậy, bạn có thể sử dụng mẫu này:

* * * * * ~/launch.sh

Mỗi năm phút sẽ được cài đặt như thế này:

*/5 * * * * ~/launch.sh

Xem thêm

Việc cài đặt tập lệnh đơn giản này sẽ giúp chương trình tiếp tục khởi động sau khi tắt vì bất kỳ lý do gì. Điều này rất tiện lợi vì nó sẽ đảm bảo thời gian dài nhất mà một chương trình sẽ ngừng hoạt động là trong repository ảng thời gian mà bạn đã chỉ định trong cấu hình cron.

Nếu bạn cần một chương trình thậm chí tinh tế hơn một chút, bạn có thể cài đặt các chi tiết về khởi động của bạn bằng một trong một số chương trình giám sát server ( Supervisor , Upstart hoặc Monit ).

Bởi Etel Sverdlov

Tags:

Các tin liên quan

Cách cài đặt phpMyAdmin trên server LEMP
2012-07-27
Cách cấu hình an toàn server MongoDB sản xuất
2012-06-25
Cách cài đặt Linux, nginx, MySQL, PHP (LEMP) trên CentOS 6
2012-06-13
Thiết lập server ban đầu với CentOS 6
2012-05-22
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên CentOS 6
2012-05-22