{"id":4398,"date":"2017-07-26T15:50:56","date_gmt":"2017-07-26T12:50:56","guid":{"rendered":"http:\/\/skeletor.org.ua\/?p=4398"},"modified":"2023-12-28T12:39:07","modified_gmt":"2023-12-28T10:39:07","slug":"inotify-%d0%b8-%d1%81%d0%be%d0%bf%d1%83%d1%82%d1%81%d1%82%d0%b2%d1%83%d1%8e%d1%89%d0%b8%d0%b5-%d1%83%d1%82%d0%b8%d0%bb%d0%b8%d1%82%d1%8b","status":"publish","type":"post","link":"https:\/\/skeletor.org.ua\/?p=4398","title":{"rendered":"inotify \u0438 \u0441\u043e\u043f\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b"},"content":{"rendered":"<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b <strong>inotify\/kqueue<\/strong> \u0441 \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u043c\u0438 \u0442\u0438\u043f\u0430 <strong>rsync<\/strong>.<\/p>\n<p><!--more--><\/p>\n<p><a href=\"https:\/\/www.freshports.org\/devel\/libinotify\/\">libinotify<\/a>, <a href=\"https:\/\/github.com\/dmatveev\/libinotify-kqueue\">libinotify-kqueue<\/a><\/p>\n<p>This library provides inotify-compatible interface for applications,<br \/>\nthat need to monitor changes happening in a filesystem. It can be useful<br \/>\nwhen porting Linux applications, which often use inotify interface.<\/p>\n<p>The IN_OPEN, IN_CLOSE_WRITE and IN_CLOSE_NOWRITE events are not yet<br \/>\nimplemented, so the relevant tests are known to fail.<\/p>\n<p><a href=\"https:\/\/github.com\/xaionaro\/clsync\">clsync<\/a><\/p>\n<p>Clsync recursively watches for source directory and executes external program to sync the changes. Clsync is adapted to use together with rsync. This utility is much more lightweight than competitors and supports such features as separate queue for big files, regex file filter, multi-threading.<\/p>\n<p><a href=\"https:\/\/github.com\/axkibe\/lsyncd\">lsyncd<\/a><\/p>\n<p>Lsyncd watches a local directory trees event monitor interface (inotify or fsevents). It aggregates and combines events for a few seconds and then spawns one (or more) process(es) to synchronize the changes. By default this is <a href=\"http:\/\/rsync.samba.org\/\">rsync<\/a>. Lsyncd is thus a light-weight live mirror solution that is comparatively easy to install not requiring new filesystems or block devices and does not hamper local filesystem performance.<\/p>\n<p><a href=\"https:\/\/github.com\/hollow\/inosync\">inosync<\/a><\/p>\n<p>The inosync daemon leverages the inotify service available in recent linux kernels to monitor and synchronize changes within directories to remote nodes.<\/p>\n<p><a href=\"https:\/\/github.com\/ar-\/incron\/blob\/master\/README.md\">incrond<\/a><\/p>\n<p>The inotify cron daemon (incrond) is a daemon which monitors filesystem events and executes commands defined in system and user tables. It uses is generally similar to cron(8).<\/p>\n<p><a href=\"https:\/\/github.com\/jcpierri\/wait_on\">wait_on<\/a><\/p>\n<p>The wait_on command allows shell scripts to access the facilities provided<br \/>\nby kqueue(3) on FreeBSD.<\/p>\n<p>The wait_on command waits for something to happen to the files or<br \/>\ndirectories given as arguments and then exits. For example, a script can<br \/>\nsleep until files have been added to a directory or data is appended to a file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b inotify\/kqueue \u0441 \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u043c\u0438 \u0442\u0438\u043f\u0430 rsync.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-4398","post","type-post","status-publish","format-standard","hentry","category-others"],"_links":{"self":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/4398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4398"}],"version-history":[{"count":3,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/4398\/revisions"}],"predecessor-version":[{"id":6299,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=\/wp\/v2\/posts\/4398\/revisions\/6299"}],"wp:attachment":[{"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/skeletor.org.ua\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}