Articles

Részletes megértése Linux Inodes például

Linux és más Unix-szerű operációs rendszerek fenntartják a következetesség kezelésére mindent, mint egy fájl (még a hardver eszközök). A billentyűzet, az egér, a nyomtatók, a monitor, a merevlemez, a folyamatok, még a könyvtárak is Linux fájlokként kezelhetők. A rendszeres fájlok olyan adatokat tartalmaznak, mint a szöveg (szöveges fájlok), zene, videók (multimédiás fájlok) stb.

a szokásos adatokon kívül vannak más adatok is ezekről a fájlokról, például méretük, tulajdonjoguk, engedélyeik, időbélyeg stb. A fájl metaadatait egy inode (index csomópont) néven ismert adatstruktúrával kezelik.

mi az Inód a Linuxban?

minden Linux fájlnak vagy könyvtárnak (technikai szempontból nincs valódi különbség közöttük) inódja van, és ez az inode tartalmazza a fájl összes metaadatát (azaz a fájl olvasásához szükséges összes adminisztratív adatot az inode tárolja).

például az inode tartalmazza az összes blokk listáját, amelyben egy fájl tárolódik, a fájl tulajdonos adatait, az engedélyeket és a fájlhoz beállított összes többi attribútumot.

az Inode határértékek fájlrendszerenként vannak meghatározva, és a fájlrendszer létrehozásának időpontjában kerülnek meghatározásra. A maximális könyvtár mérete függ a fájlrendszer, így a pontos határ eltér.

A jobb teljesítmény érdekében a könyvtárak kisebbek legyenek a fájlok alkönyvtárakba rendezésével, inkább egy nagy könyvtárral.

mi az inódszám?

az Inode számot indexszámnak is nevezik. Az inode a fájlok és könyvtárak létrehozásakor hozzárendelt egyedi szám. Az inode szám egyedi lesz a teljes fájlrendszerre.

az inode egy hagyományos Unix-stílusú fájlrendszer adatstruktúrája, például ext3 vagy ext4. egy fájl és könyvtárak tulajdonságainak tárolása.

A Linux kiterjesztett fájlrendszerei, például az ext3 vagy az ext4 ezen inódok tömbjét tartják fenn az inode táblának. Ez a táblázat tartalmazza a fájlrendszer összes fájljának listáját. Az inode táblában lévő egyes inódok egyedi számmal rendelkeznek (az adott fájlrendszerhez egyedi), az inode számnak nevezik.

a következő információkat tárolja inode:

  • Fájltípus: regular file, directory, pipe stb.
  • a fájl engedélyei: olvasható, írható, végrehajtható
  • Link száma: A számát nehéz relatív hivatkozást egy inode
  • User ID: tulajdonos fájl
  • Csoport AZONOSÍTÓJA: a csoport tulajdonosa
  • Méret fájl: vagy nagyobb/kisebb szám esetén néhány speciális fájlok
  • időpont: hozzáférési idő, módosítás idő (inode) a változás ideje,
  • Attribútumok: állandó’ például
  • a Hozzáférés-vezérlési lista: engedélyeinek különleges felhasználók/csoportok
  • a Link helye a fájl
  • Egyéb metaadatok a fájl

Megjegyezzük, hogy az inode nem tárol a fájl neve, de annak tartalma csak.

az inode adatstruktúra diagramja

hogyan kell ellenőrizni az inode-ot Linuxban

Ha meg akarja nézni az inodes-t, bármely ext fájlrendszerben használhatja az alábbi parancsokat, hogy ellenőrizze a tulajdonságait a fájlrendszer, valamint a használt fájlokat is.

a. Display file data information

az inode adatokat egy fájlban vagy könyvtárban a stat parancs segítségével jelenítheti meg.

a fájl nevét a következőképpen kell megadnia:

a stat kimenet megmondja a fájl különböző időbélyegeit, annak tulajdonjogát és engedélyeit, valamint azt, hogy hol tárolja. A fájl adatait a lemezblokk tárolja, amelyet az inode stat parancs kimenete jelenít meg.

kiválaszthatja, hogy csak a --format opcióval rendelkező fájl inode számát sorolja fel az alábbiak szerint:

# stat --format=%i hello530461

b. print index fájlok száma

az ls parancs a fájlokra és könyvtárakra vonatkozó információk listázására szolgál. A-i opció az ls-vel megjeleníti az egyes fájlok inode számát. Kombinálhatjuk a-l opcióval, hogy részletesen felsoroljuk az információkat

# ls -iltotal 140984520170 dr-xrw-rw- 2 linoadmin linoadmin 4096 Mar 9 2013 asciiquarium_1.1263206 -rwxr-xr-x 1 linoadmin linoadmin 15436 Mar 9 2013 asciiquarium.tar.gz519187 drwxr----- 2 root root 4096 Apr 13 01:35-rwSr--r-- 1 root root 5747 Apr 25 01:45 bootstrap655799 drwxr-xr-x 2 root root 4096 May 16 17:46 course528927 drwxr-xr-x 3 root root 4096 Apr 29 00:29 environments

az első oszlop megadja az inode számot. Megjelenítheti egy adott fájl inode az alábbiak szerint:

# ls -i continue.sh 519450 continue.sh

c. Display fájlrendszer inode space információ

alapértelmezés szerint a df parancs összefoglalja a rendelkezésre álló és használt lemezterület. Ehelyett a -i vagy --inodes opció átadásával kaphat jelentést az elérhető és használt inódákról.

Ez az információ hasznos lehet, ha egy partíciónak nagyon sok kis fájlja van, ami hamarabb kimerítheti a rendelkezésre álló inódokat, mint a rendelkezésre álló lemezterületet.

d. sorolja fel a fájlrendszer tartalmát superblock

használhatja a tune2fs -l parancsot az inode-hoz kapcsolódó összes információ megjelenítéséhez.

# tune2fs -l /dev/sda6 | grep inodeFilesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isizeFree inodes: 2224350First inode: 11Journal inode: 8First orphan inode: 1575905Journal backup: inode blocks

e. manipulálni a fájlrendszer meta adatok

láthatjuk a tartalmát egy inode létezik egy Ext4 fájlrendszer debugfs parancsot. A fájlrendszer hibakeresőjében elérhető stat parancsot kell használnia az inode tartalmának megjelenítéséhez. Ha kész, az exit használatával zárja be a debugfs környezetet.

győződjön meg róla, hogy a fájlrendszer fájljai nem érhetők el debugfs-ben végzett munka közben. Érdemes megfontolni a fájlrendszer mount -o remount /yourfilesystem

használatával a debugfs segítségével visszavonhatja a fájlt az inode használatával, és megjelölheti a

Inode struktúrát a

könyvtárhoz a fentiek szerint a Linux könyvtárait fájlként is kezelik. A könyvtár egy speciális fájl, amely egy fájlnevet leképez az inode számára (ezt a leképezést könyvtárbejegyzésnek vagy dentry-nek hívják). Tehát amikor azt mondjuk, hogy egy könyvtár fájlokat és más könyvtárakat tartalmaz, akkor azt értjük, hogy ez a könyvtár azokat a fájlokat és könyvtárakat (a könyvtárak speciális fájlok, ezért az inode-számokhoz is hozzá kell rendelni) az inode-számokhoz.

Ez az oka annak, hogy egy könyvtár nem tud két azonos nevű fájlt tartani, mert nem tud egy nevet leképezni két különböző inode számmal.

# ls -ld test/drwxr-xr-x 3 root root 4096 Apr 13 01:43 test/

mivel egy fájlt a szülőkönyvtára leképez az inódjára, akkor hogyan van a top legtöbb könyvtár (azaz / directory) az inódjára leképezve? A / könyvtár inódszáma rögzített, és mindig 2.

Links and index number in Linux

in the output of ls -l, the column following the permissions and before owner is the link count. A linkszám a fájlra mutató kemény hivatkozások száma. A kemény linkek megértéséhez linkekkel kezdjük. A link egy mutató egy másik fájlra.

A Linux világban kétféle link létezik:

A. szimbolikus linkek (vagy lágy linkek)

a szimbolikus link egy külön fájl, amelynek tartalma a csatolt fájlra mutat. Szimbolikus link létrehozásához használja az ln parancsot a -sopcióval. Az ln parancs használatakor győződjön meg róla, hogy először az eredeti fájl nevére, majd a létrehozni kívánt link nevére utal.

# ln -s /home/bobbin/sync.sh filesync

itt “filesync” egy szimbolikus link “sync.sh’. gondolj rá, mint egy rövidebb utat. A “filesync” szerkesztése olyan, mint az eredeti fájl közvetlen szerkesztése, de valójában ez történik. Ha töröljük vagy áthelyezzük az eredeti fájlt, a hivatkozás megszakad, és a ‘filesync’ fájlunk nem lesz többé elérhető.

a ls -l parancs azt mutatja, hogy a kapott fájl szimbolikus link. Ezt az L betű jelzi a ls -l kimenet első helyzetében, valamint a lista végén található nyíllal, amely jelzi azt a fájlt, amelyre a név utal.

# ls -l filesync lrwxrwxrwx 1 root root 20 Apr 7 06:08 filesync -> /home/bobbin/sync.sh

a szimbolikus link tartalma csak a célfájl neve. Láthatja, hogy a szimbolikus link engedélyei teljesen nyitottak. Ennek oka az, hogy az engedélyeket nem kezelik

a szimbolikus link és az eredeti fájl összehasonlításakor egyértelmű különbséget fog tapasztalni közöttük.

az eredeti fájl csak egy név, amely közvetlenül kapcsolódik az inódhoz, a szimbolikus link pedig a névre utal. A szimbolikus link mérete az általa hivatkozott fájl nevében szereplő bájtok száma,mivel a szimbolikus linkben nincs más információ.

B. kemény linkek

ahhoz, hogy képet kapjunk arról, hogy mi a kemény link, fontos megérteni, hogy egy fájl identitása az inode száma, nem pedig a neve. A kemény link egy név, amely egy inódra utal. Ez azt jelenti, hogy ha a ‘fájl1’ van egy link, a neve ‘fájl2, akkor mindkét fájlok lásd azonos inode. Tehát, amikor létrehoz egy kemény linket egy fájlhoz, csak annyit tesz, hogy új nevet ad hozzá egy inódhoz.ehhez használja az LN parancsot opció nélkül.

# ls -l /home/bobbin/sync.sh -rw-r----- 1 root root 5 Apr 7 06:09 /home/bobbin/sync.sh
# ln /home/bobbin/sync.sh synchro

most hasonlítsuk össze a két fájlt

a kemény linkekkel kapcsolatos érdekes dolog az, hogy nincs különbség az eredeti fájl és a link között: csak két név kapcsolódik ugyanahhoz az inode-hoz.

amint azt meg kell jegyeznie, a puha linkekkel ellentétben a kemény linkek nem speciális fájlok. Most a linkszám az a szám, amelyet a fájl nehezen összekapcsolt. Tehát egy linkszám növekszik egy kemény link létrehozása után, amint az a fenti ábrán látható. Ezeknek a kemény linkeknek két korlátozása van:

  • a könyvtárakat nem lehet nehéz összekapcsolni. A Linux nem teszi lehetővé a könyvtárak aciklikus faszerkezetének fenntartását.
  • egy kemény kapcsolat nem hozható létre a fájlrendszerekben. Mindkét fájlnak ugyanazon a fájlrendszeren kell lennie, mivel a különböző fájlrendszerek különböző független inode táblákkal rendelkeznek (két fájl különböző fájlrendszereken, de azonos inode számmal eltérő lesz).

hogyan lehet megtalálni a kemény linket Linuxban

letöltheti az összes fájlnevet, amely inode-számra mutat. Ez azt jelenti, hogy letöltheti a kemény linkeket, mert ez az egyetlen típusú link, ahol rendelkezhetünk néhány fájlnévvel, amelyek ugyanarra a tartalomra mutatnak (inode). Meg tudod csinálni a -inum lehetőséget találni parancs, mint az alábbi

# find / -inum 517333/home/bobbin/sync.sh/root/synchro

ez lehet tudni, hogy melyik fájlnevek lényeg, hogy az adatokat, információkat, letölteni nehéz relatív hivatkozást egy adott inode számot

a Linux műveletek fájlokkal, valamint annak kapcsolata másrészről

a Legtöbb műveleteket (pl. másolás) végzett puha linkek befolyásolja a tényleges csatolt fájl (kivéve rm vagy mv parancs, ami eltávolítás (vagy a mozgás), puha link is)

Itt van néhány fájl műveletek, amelyek során másrészről játszanak fontos szerepet:

egy. fájlok másolása

amikor egy fájlt másolunk, új inóddal rendelkező új fájl jön létre.

# cp myfile ..
# ls -li myfile ../myfile2501 -rw------- 1 raghu raghu 36 Jun 25 20:12 myfile3746 -rw------- 1 raghu raghu 36 Jan 11 12:05 ../myfile

b. fájlok áthelyezése

a fájlrendszereken való áthelyezéskor az mv parancs a fenti cp parancsként folytatódik, azzal a kivétellel, hogy az eredeti fájlt eltávolítják a helyéről. De ha egy fájlrendszeren belül mozog, az inode nem változik, csak az inode könyvtár leképezése megváltozik, a merevlemezen lévő tényleges adatok (a fájl tartalma) nem mozognak.

# ls -li samplefile.txt2497 -rw------- 1 raghu raghu 22 Jun 25 20:12 samplefile.txt

most mozgassuk át a fájlt, és ellenőrizzük az eredményt

# mv samplefile.txt ..
# ls -li ../samplefile.txt2497 -rw------- 1 raghu raghu 22 Jun 25 20:12 ../samplefile.txt

C. fájlok eltávolítása

amikor rm parancsot adnak ki, először ellenőrzi a fájl linkszámát. Ha a Hivatkozási szám nagyobb, mint 1, akkor eltávolítja ezt a könyvtárbejegyzést, és csökkenti a hivatkozási számot. Ennek ellenére az adatok jelen vannak, az inód sem érintett. Ha pedig a linkszám 1, akkor az inode törlődik az inode táblából, az inode szám szabaddá válik, és a fájl által elfoglalt adatblokkok bekerülnek az ingyenes adatblokk listába.

# ls -li myfile myfile.hardlink2501 -rw------- 2 raghu raghu 36 Jun 25 2012 myfile2501 -rw------- 2 raghu raghu 36 Jun 25 2012 myfile.hardlink

töröljük a fájlt, és ellenőrizzük az eredményt

# rm myfile.hardlink
# ls -li myfile2501 -rw------- 1 raghu raghu 36 Jun 25 2012 myfile

láthatjuk, hogy az inode száma csökkent.

következtetés

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük