Hai máy chủ / etc / khác nhau tùy thuộc vào thời gian


11

Tôi đang cố gắng để tạo ra một bộ năng suất cho chính mình. Mục tiêu đầu tiên của tôi là chặn Facebook, Gmail và Stackexchange từ 0900 đến 1600.

Đến bây giờ, tôi đã chỉnh sửa /etc/hostsvà thêm 0.0.0.0 www.facebook.com và những cái tương tự cho gmail và stackexchange.

Nhưng tôi hơi bối rối về cách bao gồm thời lượng chặn trong tập lệnh của mình.

Những gì tôi nghĩ là có 2 tệp khác nhau (hosts_allow, hosts_block) và sau đó cp hosts_allow hostshoặc cp hosts_block hoststùy theo thời gian nhưng sau đó điều này sẽ cần được đặt trong một vòng lặp vô hạn hoặc một cái gì đó mà tôi không thực sự chắc chắn là cách tốt nhất để tiếp cận vấn đề.

Bất kì manh mối nào?


Nhưng ... Nhưng StackExchange cải thiện năng suất! :(
kba

@KristianBorupAntonsen, không phải khi tôi đang cố gắng học tính toán đa biến: P

1
math.SE luôn hữu ích! :)
kba

Câu trả lời:


19

Sử dụng cron.

Nói crontab -e là root - hoặc sudo crontab -enếu bạn đã sudothiết lập - và đặt phần sau vào tệp xuất hiện trong trình soạn thảo văn bản:

0  9 * * * cp /etc/hosts_worktime /etc/hosts
0 16 * * * cp /etc/hosts_playtime /etc/hosts

Điều này nói rằng vào phút thứ tư của các giờ thứ 9 và 16 của mỗi ngày trong tháng, ghi đè lên /etc/hostsbằng các lệnh shell được đưa ra.

Bạn thực sự có thể muốn một cái gì đó phức tạp hơn một chút:

0  9 * * 1-5 cp /etc/hosts_worktime /etc/hosts
0 16 * * 1-5 cp /etc/hosts_playtime /etc/hosts

Đó là một thay đổi - đặt 1-5ở vị trí thứ năm - cho biết sự thay đổi giữa thời gian làm việc và chơi chỉ xảy ra vào thứ Hai đến thứ Sáu.

Nói man 5 crontabđể có được một lời giải thích đầy đủ về tất cả những gì bạn có thể làm trong một crontabtập tin.

Nhân tiện, tôi đã thay đổi tên các hoststệp của bạn ở trên, vì hosts_allowquá gần hosts.allow, được sử dụng bởi TCP Wrappers .


9
+1 để thay đổi tên tệp để giảm độ tương tự của tcpwrappers. Ngoài ra, tôi đề nghị ln -f, không cp- quá dễ để quên rằng mọi thay đổi /etc/hostssẽ bị xóa hai lần một ngày và bất kỳ phần mềm nào sửa đổi /etc/hostssẽ không biết. Với ln, ít nhất bạn sẽ có một bản sao thay đổi liên tục (bất kỳ thay đổi nào đang hoạt động).
Alexios

@Alexios: Không có tranh luận ở đó.
Warren Young

3

Nếu bạn có 2 hoststệp khác nhau , bạn có thể chỉ cần lên lịch cho một công việc định kỳ để ghi đè lên tệp /etcvào một giờ cụ thể trong ngày.

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.