Linux Format 139-140 Январь 2011

Page 82

Inotify Этот Учебник Inotify удоб­ный мо­дуль яд­ра сле­дит

за ва­шей фай­ло­вой сис­те­мой, как яс­т­реб

Inotify: Сле­дим за Ко­эн Верв­лое­сем лю­бит кон­тро­ли­ро­вать со­бы­тия в сво­ей фай­ло­вой сис­те­ме. Бла­го­да­ря Inotify он не упус­ка­ет ни еди­но­го из­ме­не­ния фай­лов. Про­све­ти ме­ня!

Inotify-tools 3.14

Наш эксперт Коэн Вервлое­сем работает в свободном ПО с 2000 года – ему нравится, что в Linuxвсе является файлом.

Е

сть нема­ло слу­ча­ев, когда вам нуж­но бы знать, что тво­рит­ся в неком ка­та­ло­ге. Ну­ж ­да – мать изо­бре­тений, и по­следние вер­сии ди­ст­ри­бу­ти­вов Linux изо­бре­ли для этой це­ли мно­ же­ст­во ин­ст­ру­мен­тов. На­при­мер, ес­ли вы от­крое­те свой ка­та­лог Pictures в Dolphin при им­пор­те фо­то­гра­фий с циф­ро­вой ка­ме­ры в Digikam, но­вые фай­лы тут же ото­бра­зят­ся в окне Dolphin. Ути­ли­ты ра­бо­че­го сто­ла для по­ис­ка ис­поль­зу­ют дан­ную функ­цию для

Ubuntu, как и все со­вре­мен­ные ди­ст­ри­бу­ти­вы Linux, под­дер­жи­ва­ ет Inotify из ко­роб­ки.

80      LXF139/140 Январь 2011

Ес­ли вы ис­поль­зуе­те inotifywatch, inotifywait или дру­гой ин­ст­ру­мент Inotify на боль­шом де­ре­ве ка­та­ло­гов, на­при­мер /, вы ско­ро пре­вы­си­ те стан­дарт­ный ли­мит на чис­ло про­смот­ров Inotify, по­то­му что Inotify дол­жен соз­дать один про­смотр на под­ка­та­лог. К сча­стью, эти ин­ст­ру­ мен­ты вы­да­ют под­роб­ное со­об­ще­ние об ошиб­ке, и они ска­ж ут вам, что де­лать: уве­личь­те от­ве­ден­ное на поль­зо­ва­те­ля чис­ло про­смот­ ров Inotify, ко­то­рое на­хо­дит­ся в фай­ле /proc/sys/fs/inotify/max_user_ watches. Взгля­ни­те на зна­че­ние по умол­ча­нию это­го па­ра­мет­ра яд­ра и по­высь­те его, ес­ли тре­бу­ет­ся: # cat /proc/sys/fs/inotify/max_user_watches 8192 # echo 32768 > /proc/sys/fs/inotify/max_user_watches # cat /proc/sys/fs/inotify/max_user_watches 32768 Те­перь на­блю­дай­те се­бе хоть за всей фай­ло­вой сис­те­мой. Од­на­ко эта на­строй­ка не пе­ре­жи­вет пе­ре­за­груз­ки ди­ст­ри­бу­ти­ва Linux. При же­ла­нии сде­лать дан­ный па­ра­метр яд­ра по­сто­ян­ным, до­ бавь­те в /etc/sysctl.conf та­к ую стро­к у: fs.inotify.max_user_watches = 32768 Или, ес­ли в ва­шем ди­ст­ри­бу­ти­ве нет /etc/sysctl.conf, до­бавь­те сле­ дую­щ ую стро­к у в /etc/rc.local, до стро­ки, со­дер­жа­щей exit 0: echo 32768 > /proc/sys/fs/inotify/max_user_watches

пе­ре­ин­дек­си­ро­вания из­менен­ных фай­лов – что­бы еже­ми­нут­но не сканиро­вать из­менения фай­ло­вой сис­те­мы. А ес­ли та­кая функ­ ция тре­бу­ет­ся, ска­жем, в ва­ших скрип­тах обо­лоч­ки? Бла­го­да­ ря мо­д у­лю яд­ра Linux по имени Inotify по­лу­чить ее не слиш­ком слож­но, что мы и до­ка­жем на дан­ном уро­ке. Мы рас­смот­рим ра­ бо­т у Inotify и его воз­мож­но­сти, а так­же спо­соб лег­ко до­ба­вить его на панель ин­ст­ру­мен­тов.

Под ка­по­том Inotify – ком­понент, обес­пе­чи­ваю­щий монито­ринг раз­лич­ных из­менений фай­лов в фай­ло­вых сис­те­мах; он вхо­дит в яд­ро Linux, на­чи­ная с вер­сии 2.6.13. Inotify по­зво­ля­ет сле­дить за одним или несколь­ки­ми фай­ла­ми или ка­та­ло­га­ми на пред­мет со­ бы­тий из ука­зан­но­го на­бо­ра: от­кры­тие фай­ла или пап­ки; чтение, мо­ди­фи­ка­ция или из­менение ат­ри­бу­тов (на­при­мер, мет­ки или раз­ре­шения) от­кры­то­го фай­ла; за­кры­тие, пе­ре­ме­щение, соз­ дание или уда­ление фай­ла. В таб­ли­це на стр. 83 все эти со­бы­тия пе­ре­чис­ле­ны. Вы мо­же­те ис­поль­зо­вать Inotify для це­ло­го ря­да за­дач: вы­ явить из­менения в фай­лах и ка­та­ло­гах (на­при­мер, в фай­ле на­ строй­ки или поч­то­вом ка­та­ло­ге), ав­то­ма­ти­че­­ски восста­но­вить уда­лен­ные кри­ти­че­­ски важ­ные фай­лы на­строй­ки, от­пра­вить вам по поч­те со­об­щение, когда файл за­гру­жа­ет­ся в кон­крет­ных ка­та­ ло­гах на web-сер­ве­ре, и так да­лее. Без Inotify ва­ша про­грам­ма или скрипт долж­ны бу­д ут про­ве­рять фай­лы пе­рио­ди­че­­ски (та­кой об­ раз дей­с т­в ий на­з ы­в а­е т­с я «оп­р ос» [polling]) – это очень мед­л ен­н о и тор­м о­з ит ра­б о­т у всей сис­т е­м ы. С Inotify яд­р о уве­д ом­ ля­е т про­г рам­м у по ка­ж ­д о­м у ука­з ан­н о­м у со­б ы­т ию. Inotify да­же


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.