inotifywait - ออนไลน์ในคลาวด์

นี่คือคำสั่ง inotifywait ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


inotifywait - รอการเปลี่ยนแปลงไฟล์โดยใช้ inotify

เรื่องย่อ


แจ้งเตือน [-hcmrq] [-e ] [-t ] [--รูปแบบ ] [--timefmt ]
[ ... ]

DESCRIPTION


แจ้งเตือน รอการเปลี่ยนแปลงไฟล์อย่างมีประสิทธิภาพโดยใช้ Linux's แจ้งเตือน(7) อินเตอร์เฟซ. มัน
เหมาะสำหรับการรอการเปลี่ยนแปลงไฟล์จากเชลล์สคริปต์ ออกได้ครั้งเดียว
เหตุการณ์เกิดขึ้น หรือดำเนินการอย่างต่อเนื่องและส่งออกเหตุการณ์ที่เกิดขึ้น

เอาท์พุท


แจ้งเตือน จะส่งออกข้อมูลการวินิจฉัยเกี่ยวกับข้อผิดพลาดมาตรฐานและข้อมูลเหตุการณ์บน
เอาต์พุตมาตรฐาน เอาต์พุตเหตุการณ์สามารถกำหนดค่าได้ แต่โดยค่าเริ่มต้นจะประกอบด้วยเส้น
ของแบบฟอร์มต่อไปนี้:

ดู_filename EVENT_NAMES event_filename

ดู_filename
คือชื่อไฟล์ที่เกิดเหตุการณ์ หากไฟล์เป็นไดเร็กทอรี a
เครื่องหมายสแลชต่อท้ายเป็นเอาต์พุต

EVENT_NAMES
เป็นชื่อของเหตุการณ์ inotify ที่เกิดขึ้น คั่นด้วยเครื่องหมายจุลภาค

event_filename
เป็นเอาต์พุตเฉพาะเมื่อมีเหตุการณ์เกิดขึ้นในไดเร็กทอรี และในกรณีนี้ ชื่อของ
ไฟล์ภายในไดเร็กทอรีที่ทำให้เกิดเหตุการณ์นี้คือเอาต์พุต

ตามค่าเริ่มต้น อักขระพิเศษใดๆ ในชื่อไฟล์จะไม่ถูกหลีกเลี่ยง แต่อย่างใด นี้
สามารถทำให้เอาต์พุตของ inotifywait แยกวิเคราะห์ได้ยากในสคริปต์ awk หรือคล้ายกัน
พื้นที่ --csv และ --รูปแบบ ตัวเลือกจะเป็นประโยชน์ในกรณีนี้

OPTIONS


-ชม, --ช่วยด้วย
ส่งออกข้อมูลการใช้งานที่เป็นประโยชน์บางอย่าง

@
เมื่อดูแผนผังไดเร็กทอรีซ้ำๆ ให้แยกไฟล์ที่ระบุออกจากการ
ดู ไฟล์ต้องระบุด้วยพาธสัมพัทธ์หรือแบบสัมบูรณ์ตาม to
ไม่ว่าจะกำหนดเส้นทางสัมพัทธ์หรือแบบสัมบูรณ์สำหรับไดเร็กทอรีที่ดู ถ้า
เส้นทางที่เจาะจงถูกรวมและแยกออกโดยชัดแจ้ง โดยจะมีการจับตาดูอยู่เสมอ

หมายเหตุ หากคุณต้องการดูไดเร็กทอรีหรือไฟล์ที่ชื่อขึ้นต้นด้วย @ ให้ give
เส้นทางที่แน่นอน

--จากไฟล์
อ่านชื่อไฟล์เพื่อดูหรือแยกจากไฟล์ หนึ่งชื่อไฟล์ต่อบรรทัด ถ้า
ชื่อไฟล์ขึ้นต้นด้วย @ จะถูกยกเว้นตามที่อธิบายไว้ข้างต้น ถ้า คือ `-',
ชื่อไฟล์จะถูกอ่านจากอินพุตมาตรฐาน ใช้ตัวเลือกนี้หากคุณต้องการรับชมด้วย
หลายไฟล์ที่จะส่งผ่านเป็นอาร์กิวเมนต์บรรทัดคำสั่ง

-NS, --เฝ้าสังเกต
แทนที่จะออกหลังจากได้รับเหตุการณ์เดียว ให้ดำเนินการอย่างไม่มีกำหนด NS
พฤติกรรมเริ่มต้นคือการออกหลังจากเหตุการณ์แรกเกิดขึ้น

-NS, --ภูต
เช่นเดียวกับ --monitor ยกเว้นการรันในเหตุการณ์การบันทึกพื้นหลังไปยังไฟล์ที่ต้อง
ถูกระบุโดย --outfile. หมายถึง --syslog

-o, --outfile
เหตุการณ์การส่งออกไปยัง มากกว่า stdout

-NS, --syslog
ข้อผิดพลาดของเอาต์พุตถึง syslog(3) โมดูลบันทึกระบบแทนที่จะเป็น stderr

-NS, - บันทึกซ้ำ
ดูไดเร็กทอรีย่อยทั้งหมดของไดเร็กทอรีที่ส่งผ่านเป็นอาร์กิวเมนต์ นาฬิกาจะเป็น
ตั้งค่าแบบเรียกซ้ำเพื่อความลึกไม่จำกัด ลิงก์สัญลักษณ์จะไม่ถูกข้ามไป ใหม่
ไดเรกทอรีย่อยที่สร้างจะถูกดูด้วย

คำเตือน: หากคุณใช้ตัวเลือกนี้ขณะดูไดเร็กทอรีรากของต้นไม้ขนาดใหญ่
อาจใช้เวลานานพอสมควรกว่าจะตั้งนาฬิกาเตือนทั้งหมดและเหตุการณ์
จะไม่ได้รับในเวลานี้ นอกจากนี้ เนื่องจากนาฬิกา inotify หนึ่งเรือนจะเป็น
สร้างขึ้นต่อไดเรกทอรีย่อย เป็นไปได้ว่าจำนวนสูงสุดของ inotify
นาฬิกาต่อผู้ใช้จะถึง ค่าสูงสุดเริ่มต้นคือ 8192; เพิ่มขึ้นได้
โดยเขียนถึง /proc/sys/fs/inotify/max_user_watches.

-NS, --เงียบ
หากกำหนดครั้งเดียว โปรแกรมจะละเอียดน้อยลง โดยเฉพาะจะไม่
ระบุเมื่อเสร็จสิ้นการสร้างนาฬิกา inotify ทั้งหมดแล้ว

หากระบุสองครั้ง โปรแกรมจะไม่แสดงผลใดๆ เลย ยกเว้นในกรณีของ
ข้อผิดพลาดร้ายแรง

--ไม่รวม
อย่าประมวลผลเหตุการณ์ใด ๆ ที่มีชื่อไฟล์ตรงกับ POSIX ที่ระบุขยาย
นิพจน์ทั่วไป คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

--ยกเว้น
อย่าประมวลผลเหตุการณ์ใด ๆ ที่มีชื่อไฟล์ตรงกับ POSIX ที่ระบุขยาย
นิพจน์ทั่วไป ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

-t , --หมดเวลา
ออกถ้าเหตุการณ์ที่เหมาะสมไม่ได้เกิดขึ้นภายใน วินาที ถ้า
เป็นศูนย์ (ค่าเริ่มต้น) รอกิจกรรมอย่างไม่มีกำหนด

-e , --เหตุการณ์
ฟังเฉพาะเหตุการณ์เฉพาะ รายการที่สามารถฟังได้มีรายชื่อ
ใน กิจกรรม ส่วน. ตัวเลือกนี้สามารถระบุได้มากกว่าหนึ่งครั้ง หากละเว้น
เหตุการณ์ทั้งหมดจะถูกฟัง

-ค, --csv
เอาต์พุตในรูปแบบ CSV (ค่าที่คั่นด้วยเครื่องหมายจุลภาค) สิ่งนี้มีประโยชน์เมื่อชื่อไฟล์อาจ
มีช่องว่างเนื่องจากในกรณีนี้ไม่ปลอดภัยที่จะแยกเอาต์พุตที่
แต่ละอักขระช่องว่าง

--timefmt
ตั้งค่าสตริงรูปแบบเวลาตามที่ยอมรับโดย สตริฟไทม์(3) สำหรับใช้กับ `%T'
การแปลงในตัวเลือก --format

--รูปแบบ
เอาต์พุตในรูปแบบที่ผู้ใช้กำหนด โดยใช้ไวยากรณ์เหมือน printf สตริงเหตุการณ์
เอาต์พุตถูกจำกัดไว้ที่ประมาณ 4000 อักขระและจะถูกตัดทอนให้เหลือความยาวนี้
รองรับการแปลงต่อไปนี้:

%w สิ่งนี้จะถูกแทนที่ด้วยชื่อของไฟล์ที่รับชมซึ่งมีเหตุการณ์เกิดขึ้น

%f เมื่อเหตุการณ์เกิดขึ้นภายในไดเร็กทอรี สิ่งนี้จะถูกแทนที่ด้วยชื่อของ
ไฟล์ที่ทำให้เกิดเหตุการณ์ มิเช่นนั้นจะถูกแทนที่ด้วย an
สตริงที่ว่างเปล่า

%e ถูกแทนที่ด้วยเหตุการณ์ที่เกิดขึ้น โดยคั่นด้วยเครื่องหมายจุลภาค

%Xe แทนที่ด้วยเหตุการณ์ที่เกิดขึ้น คั่นด้วยอักขระใดก็ตามที่อยู่ใน
ตำแหน่งของ 'X'

%T แทนที่ด้วยเวลาปัจจุบันในรูปแบบที่ระบุโดยตัวเลือก --timefmt
ซึ่งควรเป็นสตริงรูปแบบที่เหมาะสมสำหรับส่งผ่านไปยัง สตริฟไทม์(3)

EXIT สถานภาพ


0 โปรแกรมดำเนินการสำเร็จและมีเหตุการณ์ที่กำลังฟังอยู่
สำหรับ

1 เกิดข้อผิดพลาดในการทำงานของโปรแกรม หรือเกิดเหตุการณ์ที่ไม่
ถูกรับฟัง อย่างหลังมักเกิดขึ้นหากมีสิ่งใดเกิดขึ้นซึ่ง
บังคับให้ลบนาฬิกา inotify เช่นไฟล์ที่ดูถูกลบหรือ
ระบบไฟล์ที่มีไฟล์ที่ดูถูกถอดออก

2 พื้นที่ -t ใช้ตัวเลือกและเหตุการณ์ไม่เกิดขึ้นในช่วงเวลาที่กำหนดของ
เวลา

กิจกรรม


เหตุการณ์ต่อไปนี้ใช้ได้กับ -e ตัวเลือก:

เข้า ไฟล์ที่ดูหรือไฟล์ภายในไดเร็กทอรีที่ดูถูกอ่านจาก

แก้ไข ไฟล์ที่เฝ้าดูหรือไฟล์ภายในไดเร็กทอรีที่ดูถูกเขียนถึง

attrib ข้อมูลเมตาของไฟล์ที่ดูหรือไฟล์ภายในไดเร็กทอรีที่ดูถูกแก้ไข
ซึ่งรวมถึงการประทับเวลา การอนุญาตไฟล์ คุณลักษณะเพิ่มเติม ฯลฯ

ปิด_เขียน
ไฟล์ที่ดูหรือไฟล์ภายในไดเร็กทอรีที่ดูถูกปิด หลังจากที่เปิดขึ้น
ในโหมดเขียนได้ ซึ่งไม่ได้หมายความถึงว่าไฟล์นั้นถูกเขียนถึง

close_nowrite
ไฟล์ที่ดูหรือไฟล์ภายในไดเร็กทอรีที่ดูถูกปิด หลังจากที่เปิดขึ้น
ในโหมดอ่านอย่างเดียว

ปิดการขาย ไฟล์ที่ดูหรือไฟล์ภายในไดเร็กทอรีที่ดูถูกปิด ไม่ว่าอย่างไร
มันถูกเปิดออก โปรดทราบว่าการดำเนินการนี้ทำได้จริงเพียงแค่ฟังทั้งสองอย่าง
ปิด_เขียน และ close_nowrite, ดังนั้นเหตุการณ์ที่ปิดทั้งหมดที่ได้รับจะถูกส่งออกเป็น
หนึ่งในนั้นไม่ใช่ ปิด.

เปิด ไฟล์ที่เฝ้าดูหรือไฟล์ภายในไดเร็กทอรีที่ดูถูกเปิดขึ้น

ย้ายไปที่
ไฟล์หรือไดเร็กทอรีถูกย้ายไปยังไดเร็กทอรีที่ดู เหตุการณ์นี้เกิดขึ้นแม้ว่า
ไฟล์จะถูกย้ายจากและไปยังไดเร็กทอรีเดียวกัน

ย้าย_จาก
ไฟล์หรือไดเร็กทอรีถูกย้ายจากไดเร็กทอรีที่ดู เหตุการณ์นี้เกิดขึ้นแม้ว่า
ไฟล์จะถูกย้ายจากและไปยังไดเร็กทอรีเดียวกัน

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

ย้าย_ตัวเอง
ไฟล์หรือไดเร็กทอรีที่ดูถูกย้าย หลังจากเหตุการณ์นี้ ไฟล์หรือไดเร็กทอรีคือ
ไม่ถูกจับตามองอีกต่อไป

สร้าง ไฟล์หรือไดเร็กทอรีถูกสร้างขึ้นภายในไดเร็กทอรีที่ดู

ลบ ไฟล์หรือไดเร็กทอรีภายในไดเร็กทอรีที่ดูถูกลบ

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

ยกเลิกการต่อเชื่อม
ระบบไฟล์ที่มีไฟล์หรือไดเร็กทอรีที่เฝ้าดูอยู่ถูกถอดออก หลังจาก
เหตุการณ์นี้ไฟล์หรือไดเร็กทอรีจะไม่ถูกดูอีกต่อไป โปรดทราบว่าเหตุการณ์นี้
เกิดขึ้นได้แม้ว่าจะไม่ได้ฟังอย่างชัดแจ้งก็ตาม

ตัวอย่าง


ตัวอย่าง 1
เรียกใช้ inotifywait ที่บรรทัดคำสั่งเพื่อรอให้ไฟล์ใด ๆ ในไดเร็กทอรี `test' เป็น
เข้าถึงได้ หลังจากรัน inotifywait แล้ว `cat test/foo' จะถูกรันในคอนโซลแยกต่างหาก

% inotifywait ทดสอบ
การตั้งค่านาฬิกา
ก่อตั้งนาฬิกา
ทดสอบ/ เข้าถึง foo

ตัวอย่าง 2
เชลล์สคริปต์สั้น ๆ เพื่อรอข้อความบันทึกที่เกี่ยวข้องกับ httpd อย่างมีประสิทธิภาพและดำเนินการบางอย่าง
เหมาะสม

#!bin / sh /
ในขณะที่ inotifywait -e แก้ไข /var/log/messages; ทำ
if tail -n1 /var/log/messages | grep httpd; แล้ว
kdialog --msgbox "อาปาเช่ต้องการความรัก!"
fi
ทำ

ตัวอย่าง 3
ใช้รูปแบบเอาต์พุตที่กำหนดเองเพื่อดู `~/ทดสอบ'. ในขณะเดียวกัน มีคนวิ่ง `แตะ
~/ทดสอบ/ไฟล์เสีย; สัมผัส ~/ทดสอบ/กู๊ดไฟล์; RM ~/ทดสอบ/ไฟล์เสีย' ในคอนโซลอื่น

% inotifywait -m -r --format '%:e %f' ~/ทดสอบ
การตั้งค่านาฬิกา ระวัง: เนื่องจากได้รับ -r อาจใช้เวลาสักครู่!
ก่อตั้งนาฬิกา
สร้าง badfile
เปิด badfile
ไฟล์เสีย ATTRIB
CLOSE_WRITE:CLOSE ไฟล์เสีย
สร้างไฟล์ที่ดี
เปิด goodfile
ไฟล์ดี ATTRIB
CLOSE_WRITE:ปิด goodfile
ลบ badfile

คำเตือน


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

ใช้ inotifywait ออนไลน์โดยใช้บริการ onworks.net



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด