Score:0

ปลดล็อกล็อกไฟล์ที่ถูกล็อกโดยลินุกซ์โปรเซสอื่น

ธง ng

ฉันได้เขียนสคริปต์เพื่อทำให้ไฟล์บันทึกว่างเปล่า/เป็นโมฆะวันละครั้งบนเซิร์ฟเวอร์อูบุนตูของฉัน

เส้นทาง LogFile: /var/log/turn.log

ฉันได้ลองคำสั่งด้านล่างเพื่อจุดประสงค์นี้แล้ว:

คำสั่ง : sudo cp /dev/null /var/log/turn.log sudo truncate -s 0 /var/log/turn.log

ขนาดของไฟล์ไม่ลดลงโดยใช้คำสั่งใดคำสั่งหนึ่ง ฉันสงสัยว่าไฟล์ถูกล็อกโดยกระบวนการที่กำลังเขียนบันทึกลงในไฟล์

$ sudo ฟิวเซอร์ /var/log/turn.log
/var/log/turn.log : 964 
$ ps 964
คำสั่งเวลา PID TTY STAT

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

ฉันจะปลดล็อกไฟล์นี้ได้อย่างไรเพื่อให้สคริปต์ของฉันสามารถลบล้างไฟล์บันทึกทุกวันในเวลาที่กำหนด

bac0n avatar
cn flag
คิดว่าคุณตั้งใจจะทำ `sudo sh -c '> /var/log/turn.log'`
Soren A avatar
mx flag
ทำไมคุณไม่ใช้ยูทิลิตี้ logrotate มาตรฐานสำหรับสิ่งนี้ สิ่งนี้ได้รับการติดตั้งและกำหนดค่าแล้ว (ใน /etc/logrotate.conf และ /etc/logrotate.d) ดู `man logrotate` โปรดทราบว่าหากกระบวนการเปิดไฟล์บันทึก ข้อมูลจะไม่ถูกลบออกจากดิสก์จนกว่ากระบวนการจะปิดไฟล์
bac0n avatar
cn flag
`killall -HUP turnserver' ควรอ่านไฟล์บันทึกอีกครั้ง
Score:2
ธง cn

ฉันจะปลดล็อกไฟล์นี้ได้อย่างไรเพื่อให้สคริปต์ของฉันสามารถลบล้างไฟล์บันทึกทุกวันในเวลาที่กำหนด

หยุดเทิร์นเซิร์ฟเวอร์ก่อนที่จะทำ

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

และเริ่มทำหลังจากทำเสร็จแล้ว หากรองรับเฉพาะการรีสตาร์ทหลังจากล้างไฟล์ก็สามารถทำได้เช่นกัน ฉันจะได้ใช้ > /var/log/turn.log เป็นรูทหรือจาก crontab เป็นรูท แต่สิ่งนี้ยังเก็บไฟล์ไว้จนกว่าจะวางจำหน่าย ไม่จำเป็นต้องตัดทอน

นอกจากการแก้ไขผลัดที่จะไม่ล็อคไฟล์ตลอดเวลา (โดยใช้บริการฉันจะล็อคไฟล์เมื่อจำเป็นและที่ไหนสักแห่งในวงปิด / เปิดบันทึกอีกครั้ง) วิธีการทั่วไปเพิ่มเติมคือการเพิ่มบันทึกใน logrotate และมีการจัดการ logrotate ด้วย สิ่งนี้: บีบอัดไฟล์และลบไฟล์บีบอัดเมื่อเก่ากว่า x วัน บันทึกเก่าเหล่านั้นจะไม่ถูกแตะต้องโดยเทิร์นเซิร์ฟเวอร์

Cyrus avatar
cn flag
`sudo > /var/log/turn.log` เป็นไวยากรณ์ที่ไม่ถูกต้อง
Score:0
ธง kr

ลองใช้บรรทัดคำสั่งนี้ ควรแลกเปลี่ยนไฟล์บันทึกเก่าของคุณกับไฟล์ใหม่ที่ว่างเปล่า ไฟล์บันทึกเก่าจะมีไฟล์ *.เก่า ไฟล์นามสกุล.

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 ยกเลิกการเชื่อมโยง /var/log/turn.log.new && sync ||\
echo "ข้อผิดพลาด: มีบางอย่างผิดพลาด"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา