Điểm:0

Mở khóa tệp nhật ký bị khóa bởi một quy trình linux khác

lá cờ ng

Tôi đã viết một tập lệnh để làm trống/vô hiệu hóa tệp nhật ký mỗi ngày một lần trên máy chủ Ubuntu của mình.

Đường dẫn tệp nhật ký: /var/log/turn.log

Tôi đã thử các lệnh dưới đây cho mục đích này:

Lệnh: sudo cp /dev/null /var/log/turn.log Sudo truncate -s 0 /var/log/turn.log

Kích thước của tệp không giảm bằng cách sử dụng bất kỳ lệnh nào. Tôi nghi ngờ rằng tệp bị khóa bởi quy trình hiện đang ghi nhật ký vào đó.

$ sudo fuser /var/log/turn.log
/var/log/turn.log : 964 
$ ps 964
LỆNH PID TTY STAT TIME

964? Ssl 0:54 /usr/bin/turnserver -c /etc/turnserver.conf -o -v
$

Làm cách nào tôi có thể mở khóa tệp này để tập lệnh của tôi có thể vô hiệu hóa tệp nhật ký hàng ngày tại một thời điểm nhất định.

bac0n avatar
lá cờ cn
nghĩ rằng bạn muốn làm `Sudo sh -c '> /var/log/turn.log'`
Soren A avatar
lá cờ mx
Tại sao bạn không sử dụng tiện ích logrotate tiêu chuẩn cho việc này? Điều này đã được cài đặt và cấu hình (trong /etc/logrotate.conf và /etc/logrotate.d). Xem `man logrotate`. Ngoài ra, hãy lưu ý rằng nếu một quy trình mở tệp nhật ký, dữ liệu sẽ không bị xóa khỏi đĩa cho đến khi quy trình đóng tệp.
bac0n avatar
lá cờ cn
`killall -HUP turnserver` nên đọc lại tệp nhật ký.
Điểm:2
lá cờ cn

Làm cách nào tôi có thể mở khóa tệp này để tập lệnh của tôi có thể vô hiệu hóa tệp nhật ký hàng ngày tại một thời điểm nhất định.

Dừng máy chủ quay vòng trước khi bạn làm

sudo cp /dev/null /var/log/turn.log 
Sudo truncate -s 0 /var/log

và bắt đầu nó sau khi điều này được thực hiện. Nếu được hỗ trợ, chỉ có thể khởi động lại sau khi làm trống tệp. tôi đã có thể sử dụng > /var/log/turn.log với quyền root hoặc từ crontab với quyền root; nhưng điều này cũng giữ nguyên tệp cho đến khi được phát hành. Cắt ngắn là không cần thiết.

Bên cạnh việc thay đổi turnever để không khóa tệp mọi lúc (sử dụng dịch vụ tôi sẽ khóa tệp khi cần và ở đâu đó trong vòng lặp đóng/mở lại nhật ký), phương pháp chung hơn sẽ là thêm nhật ký vào logrotate và xử lý logrotate với điều này: nén tệp và xóa tệp nén khi cũ hơn x ngày. Những nhật ký cũ hơn không bao giờ được chạm vào bởi máy chủ quay vòng.

Cyrus avatar
lá cờ cn
`sudo > /var/log/turn.log` sai cú pháp.
Điểm:0
lá cờ kr

Hãy thử dòng lệnh này, nó sẽ trao đổi tệp nhật ký cũ của bạn với một tệp trống mới. Tệp nhật ký cũ sẽ có *.cũ phần mở rộng tập tin.

sudo cp -a --attributes-only /var/log/turn.log /var/log/turn.log.new &&\
sudo ln -f /var/log/turn.log /var/log/turn.log.old &&\
sudo ln -f /var/log/turn.log.new /var/log/turn.log &&\
Sudo hủy liên kết /var/log/turn.log.new && sync ||\
echo "Lỗi: Đã xảy ra sự cố."

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.