اخیرا موسسه لینوکس مدرک LFCS (مخفف Linux Foundation Certified Sysadmin) را ارائه داده است، که در حقیقت برنامه ای جدید به منظور اجازه دادن به افراد از سرتاسر جهان برای دسترسی داشتن به امتحان مربوطه (EXAM) میباشد که ثابت میکند شخص دارای گواهینامه قادر به اجرا کردن وظایف مدیریتی سیستم های لینوکسی از سطح مقدماتی تا متوسطه میباشد. این برنامه همچنین شامل راه اندازی سیستم ها و سرویس ها، همچنین ترابل شوت و آنالیز در سطح ابتدایی بعلاوه توانایی تصمیم گیری به هنگام مشکلات برای مهندسی گروه های کاری در این زمینه را پشتیبانی میکند.
در این مقاله ما نحوه ی Archive/Compress فایل ها، تنظیم attribute ها و جستجوی فایل ها در filesystem را پوشش می دهیم، که در آزمون LFCS مورد نیاز است.
همچنین توصیه میشود مطالعه کنید :
دستور tar در لینوکس برای فشرده سازی یا بک آپ گیری از فایل ها در لینوکس
فشرده سازی فایل ها در لینوکس با bzip2 - gzip - zip - tar
5 ابزار جهت فشرده سازی فایل ها از طریق خط فرمان در لینوکس - قسمت اول
DTRX - ابزاری هوشمند جهت Extract کردن فایل های فشرده در لینوکس (ارباب حلقه ها)
دستور bzip2 برای فشرده سازی (Compress / Decompress) یک فایل .bz2 در لینوکس
دستور Rsync در لینوکس برای بک آپ گیری و انتقال فایل ها تحت شبکه
ابزارهای آرشیو کردن و فشرده سازی فایل ها
یک ابزار آرشیو کردن، مجموعه ای از فایل ها را در داخل یک فایل گروه بندی می کند، که ما می توانیم با استفاده از آن از مدیا های مختلف بک آپ گیری کنیم، آنها را تحت شبکه منتقل کنیم و یا از طریق ایمیل ارسال کنیم. در لینوکس اغلب از tar استفاده می شود. هنگامیکه ابزار آرشیو کردن همراه با فشرده سازی استفاده می شود، اجازه می دهد که برای ذخیره ی همان فایل ها برروی دیسک، حجم کمتری مورد نیاز باشد.
ابزار tar
بسته ی نرم افزاری tar گروهی از فایل ها در داخل یک فایل آرشیو شده است. نام آن به طور کلی از tape archive برگرفته شده است. Tar به طور معمول با ابزار فشرده سازی همچون gzip ،bzip2 یا xz استفاده می شود.
ساختار دستور tar
رایج ترین موارد استفاده ی دستور tar
مواردی که به طور معمول مورد استفاده قرار می گیرد.
Gzip قدیمی ترین ابزار فشرده سازی است و حداقل فشرده سازی را فراهم می کند. در حالیکه bzip2 فشرده سازی بیشتری را فراهم می کند. علاوه بر آن xz جدید ترین و بهترین نوع فشرده سازی است.
گروه بندی و فشرده سازی با استفاده از gzip، bzip2 و یا xz
فایل ها را در دایرکتوری جاری، گروه بندی کنید و با استفاده از gzip، bzip2 و یا xz، فشرده سازی کنید.
لیست کردن محتویات یک tarball و بروزرسانی فایل ها
محتویات tarball را لیست کنید و اطلاعات فایل ها را نمایش دهید. توجه کنید که عملیات بروزرسانی و اضافه کردن فایل ها نمی تواند به طور مستقیم برروی فایل فشرده اعمال شود.
دستورات زیر را اجرا کنید.
سپس
و
در آخر
و زمان و تاریخ تغییرات file4 را مقایسه کنید.
بیرون کشیدن نوع فایل
فرض کنید شما می خواهید یک بک آپ از دایرکتوری home کاربر داشته باشید. یک تمرین خوب بیرون کشیدن فایل های ویدئو و صوت از backup تان است.
شاید اولین روش شما بیرون کشیدن تمام فایل های با پسوند mp3 و mp4 باشد. اگر شما کاربر باهوشی داشته باشید که پسوند ها را به txt یا bkp تغییر داده باشد روش شما خوب نخواهد بود. بنابراین برای تشخیص فایل های ویدئو شما نیاز دارید که نوع فایل ها را بررسی کنید. اسکریپت زیر این کار را به شما نشان خواهد داد.
بازیابی Backup ها با حفظ پرمیشن های tar
شما می توانید بک آپ ی که گرفته اید را در دایرکتوری home اصلی کاربر با حفظ پرمیشن ها بازیابی کنید. از دستور زیر استفاده کنید.
استفاده از دستور find برای جستجوی فایل ها
دستور find برای جستجوی فایل ها و دایرکتوری ها با تطابق کاراکتر آنها استفاده می شود و می تواند نتیجه ی جستجو را پرینت کرده و عملیاتی نیز برروی آنها انجام دهد.
به طور معمول، ما میخواهیم براساس نام، owner، گروه، نوع، سطح دسترسی، و تاریخ و حجم فایل جستجو کنیم.
همچنین توصیه میشود مطالعه بفرمایید.
دستور find در لینوکس به همراه 35 مثال عملی
ساختار اصلی دستور :
پیدا کردن فایل ها به صورت Recursive, بر اساس سایز (جستجو در دایرکتوری و زیر شاخه های موجود در آن)
تمام فایل ها (-f) در دایرکتوری جاری (.) و دو زیر دایرکتوری (-maxdepth 3 شامل دایرکتوری جاری و 2 زیر دایرکتوری است) که سایز آنها (-size) بزرگتر از 2MB است را پیدا کنید.
یافتن فایل ها براساس atime یا mtime
تمام فایل های کانفیگ را در /etc که دارای زمان دسترسی (atime) و زمان اصلاح (mtime) بیشتر (+180) یا کمتر (-180) از 6 ماه پیش یا دقیقا 6 ماه پیش(180) است را پیدا کنید.
پیدا کردن سطوح دسترسی و ویژگی های اولیه
10 کاراکتر اول در خروجی ls –l ویژگی های فایل هستند. اولین کارکتری که استفاده می شود به انواع زیر اشاره دارد:
9 کاراکتر بعدی، پرمیشن های فایل هستند که به صورت خواندنی (r)، نوشتنی(w) و اجرایی (x) هستند که برای کاربر و گروه و دیگر تعریف می شوند.
درحالی که پرمیشن خواندنی در فایل اجازه ی خواندن فایل را می دهد همان پرمیشن در دایرکتوری اگر اجرایی نیز باشد، اجازه ی لیست کردن محتویات آنرا می دهد. علاوه بر این فایل اجرایی اجازه به کار گرفتن و اجرای فایل را می دهد. در حالی که دایرکتوری اجرایی این معنی را نمی دهد.
پرمیشن فایل ها را با دستور chmod به صورت زیر می توان تغییر داد :
که new_mode یک عدد هشت هشتی برای پرمیشن جدید است.
عدد هشت هشتی می تواند از برابر باینری خودش گرفته شود. که از پرمیشن فایل برای owner و group و other به صورت زیر گرفته می شود.
برای ست کردن پرمیشن ها به صورت زیر استفاده کنید.
شما همچنین می توانید با استفاده از حروف u که به owner اشاره دارد و g که به گروه و o که دیگران را شامل می شود نیز پرمیشن فایل را ست کنید. و همه ی آنها را می توان با a نشان داد. و پرمیشن ها با + یا – به فایل داده و گرفته می شوند.
لغو پرمیشن اجرایی برای تمام فایل های شل اسکریپت کاربران
همانطور که توضیح دادیم، ما می توانیم پرمیشن ها را با – لغو کنیم. دستور زیر این کار را انجام می دهد که a تمامی کاربران و – نیز برای لغو می باشد.
ما از سه رقم هشت هشتی برای ست کردن پرمیشن فایل ها استفاده می کنیم. اولین رقم به پرمیشن owner و دومین رقم به پرمیشن گروه و سومی به other اشاره دارد.
در طول زمان و با تمرین شما قادر خواهید بود که روش تغییر مجوزهای یک فایل را تشخیص دهید. لیست دایرکتوری های زیر owner فایل و group owner فایل را به شما نشان می دهد.
با استفاده از دستور chown میتون مالکیت فایل را تغییر داد. Owner و group owner میتواند همانند دستور زیر تغییر داده شوند.
نمونه های بیشتر
تغییر owner یک فایل برای کاربر خاص
تغییر owner و group یک کاربر خاص
تغییر تنها group owner یک فایل
همچنین توصیه میشود مطالعه کنید.
فشرده سازی فایل ها در لینوکس با دستور zip و اکسترکت کردن در یک دایرکتوری خاص
آموزش دستور rar برای unzip - extract و compress فایل های لینوکس
با آرزوی موفقیت
در این مقاله ما نحوه ی Archive/Compress فایل ها، تنظیم attribute ها و جستجوی فایل ها در filesystem را پوشش می دهیم، که در آزمون LFCS مورد نیاز است.
همچنین توصیه میشود مطالعه کنید :
دستور tar در لینوکس برای فشرده سازی یا بک آپ گیری از فایل ها در لینوکس
فشرده سازی فایل ها در لینوکس با bzip2 - gzip - zip - tar
5 ابزار جهت فشرده سازی فایل ها از طریق خط فرمان در لینوکس - قسمت اول
DTRX - ابزاری هوشمند جهت Extract کردن فایل های فشرده در لینوکس (ارباب حلقه ها)
دستور bzip2 برای فشرده سازی (Compress / Decompress) یک فایل .bz2 در لینوکس
دستور Rsync در لینوکس برای بک آپ گیری و انتقال فایل ها تحت شبکه
ابزارهای آرشیو کردن و فشرده سازی فایل ها
یک ابزار آرشیو کردن، مجموعه ای از فایل ها را در داخل یک فایل گروه بندی می کند، که ما می توانیم با استفاده از آن از مدیا های مختلف بک آپ گیری کنیم، آنها را تحت شبکه منتقل کنیم و یا از طریق ایمیل ارسال کنیم. در لینوکس اغلب از tar استفاده می شود. هنگامیکه ابزار آرشیو کردن همراه با فشرده سازی استفاده می شود، اجازه می دهد که برای ذخیره ی همان فایل ها برروی دیسک، حجم کمتری مورد نیاز باشد.
ابزار tar
بسته ی نرم افزاری tar گروهی از فایل ها در داخل یک فایل آرشیو شده است. نام آن به طور کلی از tape archive برگرفته شده است. Tar به طور معمول با ابزار فشرده سازی همچون gzip ،bzip2 یا xz استفاده می شود.
ساختار دستور tar
کد PHP:
# tar [options] [pathname ...]
رایج ترین موارد استفاده ی دستور tar
آپشن | مخفف | توضیحات |
–create | c | ایجاد یک آرشیو tar |
–concatenate | A | اضافه کردن فایل های tar به یک فایل آرشیو |
–append | r | اضافه کردن فایل های tar به انتهای یک فایل آرشیو |
–update | u | اضافه کردن فایل های جدید tar و کپی در فایل آرشیو |
–diff or –compare | d | یافتن تفاوت بین فایل آرشیو و فایل سیستم |
–file archive | f | استفاده از فایل آرشیو |
–list | t | لیست کردن محتوای یک tarball |
–extract or –get | x | استخراج فایل ها از یک آرشیو |
آپشن | مخفف | توضیحات |
–directory dir | C | تغییر به دایرکتوری dir قبل از اجرای هر عملیاتی |
–same-permissions | p | نمایش پرمیشن های اصلی |
–verbose | v | لیست کردن تمام فایل های خوانده شده. هنگامیکه این فایل استفاده می شود، سایز فایل ها و زمان و ... نمایش داده خواهد شد. |
–verify | W | اصلاح آرشیو پس از نوشتن برروی آن |
–exclude file | — | بیروت انداختن فایل از آرشیو |
–exclude=pattern | X | بیرون انداختن فایل ها با استفاده از الگوی خاص |
–gzip or –gunzip | z | تبدیل آرشیو به gzip |
–bzip2 | j | تبدیل آرشیو به bzip2 |
–xz | J | تبدیل آرشیو به xz |
گروه بندی و فشرده سازی با استفاده از gzip، bzip2 و یا xz
فایل ها را در دایرکتوری جاری، گروه بندی کنید و با استفاده از gzip، bzip2 و یا xz، فشرده سازی کنید.
کد PHP:
# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]
لیست کردن محتویات یک tarball و بروزرسانی فایل ها
محتویات tarball را لیست کنید و اطلاعات فایل ها را نمایش دهید. توجه کنید که عملیات بروزرسانی و اضافه کردن فایل ها نمی تواند به طور مستقیم برروی فایل فشرده اعمال شود.
کد PHP:
# tar tvf [tarball]
دستورات زیر را اجرا کنید.
کد PHP:
# gzip -d myfiles.tar.gz [#1]
# bzip2 -d myfiles.tar.bz2 [#2]
# xz -d myfiles.tar.xz [#3]
سپس
کد PHP:
# tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
# tar --update --file myfiles.tar file4 (adds the updated file)
کد PHP:
# gzip myfiles.tar [ if you choose #1 above ]
# bzip2 myfiles.tar [ if you choose #2 above ]
# xz myfiles.tar [ if you choose #3 above ]
کد PHP:
# tar tvf [tarball] #again
و زمان و تاریخ تغییرات file4 را مقایسه کنید.
بیرون کشیدن نوع فایل
فرض کنید شما می خواهید یک بک آپ از دایرکتوری home کاربر داشته باشید. یک تمرین خوب بیرون کشیدن فایل های ویدئو و صوت از backup تان است.
شاید اولین روش شما بیرون کشیدن تمام فایل های با پسوند mp3 و mp4 باشد. اگر شما کاربر باهوشی داشته باشید که پسوند ها را به txt یا bkp تغییر داده باشد روش شما خوب نخواهد بود. بنابراین برای تشخیص فایل های ویدئو شما نیاز دارید که نوع فایل ها را بررسی کنید. اسکریپت زیر این کار را به شما نشان خواهد داد.
کد PHP:
#!/bin/bash
# Pass the directory to backup as first argument.
DIR=$1
# Create the tarball and compress it. Exclude files with the MPEG string in its file type.
# -If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
# -If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*
بازیابی Backup ها با حفظ پرمیشن های tar
شما می توانید بک آپ ی که گرفته اید را در دایرکتوری home اصلی کاربر با حفظ پرمیشن ها بازیابی کنید. از دستور زیر استفاده کنید.
کد PHP:
# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions
استفاده از دستور find برای جستجوی فایل ها
دستور find برای جستجوی فایل ها و دایرکتوری ها با تطابق کاراکتر آنها استفاده می شود و می تواند نتیجه ی جستجو را پرینت کرده و عملیاتی نیز برروی آنها انجام دهد.
به طور معمول، ما میخواهیم براساس نام، owner، گروه، نوع، سطح دسترسی، و تاریخ و حجم فایل جستجو کنیم.
همچنین توصیه میشود مطالعه بفرمایید.
دستور find در لینوکس به همراه 35 مثال عملی
ساختار اصلی دستور :
کد PHP:
# find [directory_to_search] [expression]
پیدا کردن فایل ها به صورت Recursive, بر اساس سایز (جستجو در دایرکتوری و زیر شاخه های موجود در آن)
تمام فایل ها (-f) در دایرکتوری جاری (.) و دو زیر دایرکتوری (-maxdepth 3 شامل دایرکتوری جاری و 2 زیر دایرکتوری است) که سایز آنها (-size) بزرگتر از 2MB است را پیدا کنید.
کد PHP:
# find . -maxdepth 3 -type f -size +2M
یافتن فایل ها براساس atime یا mtime
تمام فایل های کانفیگ را در /etc که دارای زمان دسترسی (atime) و زمان اصلاح (mtime) بیشتر (+180) یا کمتر (-180) از 6 ماه پیش یا دقیقا 6 ماه پیش(180) است را پیدا کنید.
کد PHP:
# find /etc -iname "*.conf" -mtime -180 -print
پیدا کردن سطوح دسترسی و ویژگی های اولیه
10 کاراکتر اول در خروجی ls –l ویژگی های فایل هستند. اولین کارکتری که استفاده می شود به انواع زیر اشاره دارد:
- - : فایل
- -d : دایرکتوری
- -l : لینک سیمبولینک
- -c : دیوایس کاراکتر
- -b : دیوایس بلاک
9 کاراکتر بعدی، پرمیشن های فایل هستند که به صورت خواندنی (r)، نوشتنی(w) و اجرایی (x) هستند که برای کاربر و گروه و دیگر تعریف می شوند.
درحالی که پرمیشن خواندنی در فایل اجازه ی خواندن فایل را می دهد همان پرمیشن در دایرکتوری اگر اجرایی نیز باشد، اجازه ی لیست کردن محتویات آنرا می دهد. علاوه بر این فایل اجرایی اجازه به کار گرفتن و اجرای فایل را می دهد. در حالی که دایرکتوری اجرایی این معنی را نمی دهد.
پرمیشن فایل ها را با دستور chmod به صورت زیر می توان تغییر داد :
کد PHP:
# chmod [new_mode] file
که new_mode یک عدد هشت هشتی برای پرمیشن جدید است.
عدد هشت هشتی می تواند از برابر باینری خودش گرفته شود. که از پرمیشن فایل برای owner و group و other به صورت زیر گرفته می شود.
برای ست کردن پرمیشن ها به صورت زیر استفاده کنید.
کد PHP:
# chmod 744 myfile
شما همچنین می توانید با استفاده از حروف u که به owner اشاره دارد و g که به گروه و o که دیگران را شامل می شود نیز پرمیشن فایل را ست کنید. و همه ی آنها را می توان با a نشان داد. و پرمیشن ها با + یا – به فایل داده و گرفته می شوند.
لغو پرمیشن اجرایی برای تمام فایل های شل اسکریپت کاربران
همانطور که توضیح دادیم، ما می توانیم پرمیشن ها را با – لغو کنیم. دستور زیر این کار را انجام می دهد که a تمامی کاربران و – نیز برای لغو می باشد.
کد PHP:
# chmod a-x backup.sh
- Owner: (r=22 + w=21 + x=20 = 7)
- Group owner: (r=22 + w=21 + x=20 = 7)
- World: (r=22 + w=0 + x=0 = 4),
کد PHP:
# chmod 774 myfile
با استفاده از دستور chown میتون مالکیت فایل را تغییر داد. Owner و group owner میتواند همانند دستور زیر تغییر داده شوند.
کد PHP:
# chown user:group file
نمونه های بیشتر
تغییر owner یک فایل برای کاربر خاص
کد PHP:
# chown gacanepa sent
کد PHP:
# chown gacanepa:gacanepa TestFile
کد PHP:
# chown :gacanepa email_body.txt
همچنین توصیه میشود مطالعه کنید.
فشرده سازی فایل ها در لینوکس با دستور zip و اکسترکت کردن در یک دایرکتوری خاص
آموزش دستور rar برای unzip - extract و compress فایل های لینوکس
با آرزوی موفقیت