Chạy một tập lệnh bash khi khởi động máy chủ Ubuntu, một vòng lặp không đổi


0

Tôi đang tạo một máy chủ FTP cục bộ và tôi cần tập lệnh này để chạy khi máy khởi động:

#!/bin/bash
while [ 1 ];
do
chmod 2777 /home/ftp/folder;
chmod -R 777 /home/ftp/folder;
sleep 60;
done

Đó là cách tốt nhất để đi về điều này?

Tôi đã cố gắng đặt nó trong tệp RC.local nhưng điều này không cho phép máy chủ khởi động đúng cách, tập lệnh này cần được chạy dưới dạng sudo, nếu điều đó sẽ tạo ra sự khác biệt trong tập lệnh được chạy.

Bất kỳ trợ giúp hoặc ý tưởng sẽ được đánh giá cao, Cảm ơn.


Bạn có chắc chắn về "chmod -R 777" .. điều này làm cho tất cả các tệp cũng có thể thực thi được. Tôi bị hoang tưởng, tôi không muốn một số mô tả về "hey đừng làm: rm -rf /" biến thành một kịch bản bằng cách thực thi :)
Rich Homolka

Tôi hiểu điều đó nhưng với những gì tôi đang tạo ra, nó cần phải được thực thi. Máy chủ chỉ có thể được truy cập nội bộ và mỗi tài khoản được chỉ định cho các cá nhân.
Ash King

Câu trả lời:


1

những gì về việc sử dụng một cronjob?

đặt

#!/bin/bash
chmod 2777 /home/ftp/folder
chmod -R 777 /home/ftp/folder

vào một tập tin kịch bản và gọi nó mỗi phút:

sudo crontab -e

và gọi bằng cách sau:

* * * * * /path/to/script.sh

thêm thông tin - ubfox wiki


0
  • Xóa vòng lặp khỏi tập lệnh của bạn
  • Đặt tập lệnh vào một số thư mục hợp lý (ví dụ /usr/local/sbin/)
  • Đặt mô tả công việc cron vào /etc/cron.d/, vd

* * * * * myuser /usr/local/sbin/myscript

Điều này sẽ làm cho kịch bản của bạn chạy mỗi phút. Sau đó, để hoàn toàn ở bên an toàn, bạn cần thêm một số cách để đảm bảo rằng chỉ một lần phiên bản đang chạy (nghĩa là không chạy nếu một phiên bản khác mất hơn một phút để kết thúc). Điều này thường được thực hiện thông qua các tập tin khóa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.