اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

دستور pv برای مانیتور روند Copy/Backup/Compress اطلاعات در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    دستور pv برای مانیتور روند Copy/Backup/Compress اطلاعات در لینوکس

    وقتی بک آپ می گیرید، فایل های بزرگ را روی سیستم لینوکسی تان کپی یا جابه جا می کنید، شاید بخواهید میزان پیشرفت عملیات (Progress Bar) در حال اجرا را مانیتور کنید. خیلی از ابزارهای ترمینال به شما این امکان را نمیدهند که اطلاعات میزان پیشرفت دستور در حال اجرا با استفاده از پایپ "|" ببینید .
    دستور pv در لینوکس




    در این مقاله به یک دستور مهم در لینوکس/یونیکس به نام pv خواهیم پرداخت. PV یک ابزار مبتنی بر ترمینال است که به شما اجازه می دهد با استفاده از pipe (|) میزان پیشرفت دستور را مانیتور کنید. وقتی از دستور pv استفاده می کنید، یک محیط گرافیکی با اطلاعات زیر نمایش داده می شود :
    • زمان سپری شده
    • درصد کامل شده در نوار جریان
    • نمایش نرخ بازدهی کنونی
    • مقدار کل داده ارسال شده
    • و زمان تخمین زده شده.


    همچنین توصیه میشود مطالعه کنید :

    دستور پیشرفته copy در لینوکس برای نمایش میزان پیشرفت کپی فایل ها و دایرکتوری های بزرگ

    pscp - انتقال/کپی فایل ها به چندین سرور لینوکس با استفاده از تنها یک شل

    10 نمونه از دستورات sFTP برای انتقال فایل ها روی سرورهای لینوکس راه دور

    10 نمونه از دستور scp برای انتقال فایل ها و فولدرها در لینوکس

    10 مثال از دستور Rsync در لینوکس

    دستورات nc و pv برای انتقال فایل ها بین دو کامپیوتر




    نحوه نصب دستور pv در لینوکس؟

    این دستور به صورت پیش فرض در بیشتر توزیع های لینوکس نصب نمی باشد، بنابراین می توانید آن را با گام های زیر نصب کنید.


    بر روی RHEL, Fedora, CentOS
    اول باید مخزن EPEL را فعال کنید و بعد دستور زیر را اجرا کنید.
    کد:
    # yum install pv
    # dnf install pv            [On Fedora 22+ versions]
    نمونه خروجی
    کد:
    Dependencies Resolved
    
    =================================================================================
     Package       Arch              Version                   Repository       Size
    =================================================================================
    Installing:
     pv            x86_64            1.4.6-1.el7               epel             47 k
    
    Transaction Summary
    =================================================================================
    Install  1 Package
    
    Total download size: 47 k
    Installed size: 93 k
    Is this ok [y/d/N]: y
    Downloading packages:
    pv-1.4.6-1.el7.x86_64.rpm                                 |  47 kB  00:00:00    
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : pv-1.4.6-1.el7.x86_64                                         1/1
      Verifying  : pv-1.4.6-1.el7.x86_64                                         1/1
    
    Installed:
      pv.x86_64 0:1.4.6-1.el7                                                        
    
    Complete!


    بر روی Debian, Ubuntu, Mint
    کد:
    # apt-get install pv
    نمونه خروجی
    کد:
    Reading package lists... Done
    Building dependency tree      
    Reading state information... Done
    The following NEW packages will be installed:
      pv
    0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.
    Need to get 33.7 kB of archives.
    After this operation, 160 kB of additional disk space will be used.
    Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe pv amd64 1.2.0-1 [33.7 kB]
    Fetched 33.7 kB in 0s (48.9 kB/s)
    Selecting previously unselected package pv.
    (Reading database ... 216340 files and directories currently installed.)
    Preparing to unpack .../archives/pv_1.2.0-1_amd64.deb ...
    Unpacking pv (1.2.0-1) ...
    Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
    Setting up pv (1.2.0-1) ...


    بر روی لینوکس Gentoo
    از مدیر بسته emerge برای نصب دستور pv مانند زیر استفاده کنید.
    کد:
    # emerge --ask sys-apps/pv

    بر روی لینوکس FreeBSD
    شما می توانید از port برای نصب آن استفاده کنید به صورت زیر:
    کد:
    # cd /usr/ports/sysutils/pv/
    # make install clean
    یا بسته باینری آن را به صورت زیر اضافه کنید:
    کد:
    # pkg_add -r pv


    نحوه استفاده دستور pv در لینوکس

    Pv معمولا با برنامه های دیگر که قابلیت مانیتور کردن میزان پیشرفت خروجی خودشان در زمان اجرا را ندارند استفاده می شود. شما می توانید آن در یک pipeline بین دو پروسس قرار دهید، یا با آپشن های مناسب موجود استفاده کنید.

    ورودی استاندارد pv از خروجی استانداردش عبور خواهد کرد و میزان پیشرفت (خروجی) در error استاندارد چاپ خواهد شد. در واقع رفتاری مشابه دستور cat در لینوکس دارد.

    دستور pv به صورت زیر قابل استفاده است:
    کد:
    pv file
    pv options file
    pv file > filename.out
    pv options | command > filename.out
    comand1 | pv | command2
    آپشن هایی که همراه pv استفاده می شوند به سه دسته تقسیم می شوند، نمایش سوئیچ ها، modifier (ایجاد تغییرات) خروجی و آپشن های کلی.

    چند آپشن برای تغییر نمایش.
    • برای فعال کردن نوار نمایش، از آپشن –p استفاده کنید.
    • برای نمایش زمان سپری شده، از آپشن –timer استفاده کنید.
    • برای فعال کردن تایمر ETA که نشان دهنده مقدار زمان باقی مانده برای اتمام فعالیت است، از آپشن –eta استفاده کنید. حدس این زمان بر اساس rate قبلی transfer و سایزکل داده است.
    • برای فعال کردن یک شمارنده ی rate از آپشن –rate استفاده کنید.
    • برای نمایش کل داده منتقل شده تا حالا، از آپشن –bytes استفاده کنید.
    • برای نمایش مقدار پیشرفت به صورت درصد عددی به جای گرافیکی، از آپشن –n استفاده کنید.



    این وقتی خوب است که pv را استفاده می کنید تا میزان پیشرفت را در یک ترمینال نشان دهد.

    چند آپشن برای تغییر خروجی.
    • برای منتظر ماندن تا زمانی که اولین byte از اطلاعات جابجا شود قبل از نمایش اطلاعات پیشرفت دستور باید از آپشن –wait استفاده کنید.
    • فرض کنید مقدار کل داده برای انتقال SIZE بایت است وقتی درصد و ETA را حساب می کنید، از آپشن –size SIZE استفاده کنید.
    • برای مشخص کردن فاصله های زمانی بین آپدیت ها ، از آپشن –interval SECONDS استفاده کنید.
    • برای اجبار یک عملیات از آپشن –force استفاده کنید. آین آپشن pv را مجبور می کند تا تصاویر را زمانی که standard error یک ترمینال نباشد، نشان دهد.
    • آپشن های کلی –help برای نمایش نحوه کارکرد و –version برای نمایش ورژن هستند.



    استفاده دستور pv به همراه مثال

    1. وقتی هیچ آپشن ای ذکر نشده است، دستور pv به صورت پیش فرض از آپشن های -p، -t، -e، -r و –b استفاده می کند.

    برای مثال، برای کپی فایل opensuse.vdi به /tmp/opensuse.vdi، دستور زیر را اجرا کنید و نوار پیشرفت را در زیر مشاهده کنید.
    کد:
    # pv opensuse.vdi > /tmp/opensuse.vdi
    pv command in linux




    2. برای zip کردن یک فایل از فایل /var/log/syslog تان، دستور زیر را اجرا کنید.
    کد:
    # pv /var/log/syslog | zip > syslog.zip
    مشاهده میزان درصد کپی در ترمینال لینوکس




    3. برای شمارش تعداد خطوط، کلمات و بایت ها در فایل /etc/hosts و نمایش نوار پیشرفت، دستور زیر را اجرا کنید.
    کد:
    # pv -p /etc/hosts | wc
    دستور pv برای مشاهده درصد رشد کپی و فشرده سازی اطلاعات




    4. مانیتور کردم میزان پیشرفت در ایجاد یک فایل بک آپ با استفاده از ابزار tar .
    کد:
    # tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)
    دستور pv برای مشاهده میزان پیشرفت بک آپ گیری در لینوکس




    5. از pv و dialog مبتنی بر ترمینال برای ایجاد یک دیالوگ progress bar به صورت زیر استفاده کنید.
    کد:
    # tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
    دستور pv در لینوکس





    خلاصه

    این یک ابزار مبتنی بر ترمینال است که می توانید با ابزارهایی که توانایی مانیتور جریان یک عمیات مانند کپی، جابه جایی، بک آپ را ندارند استفاده کنید. برای آپشن های بیشتر این دستور به صفحه man دستور pv مراجعه کنید. منتظر نظرات و پیشنهادات شما هستیم.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-24-2021, 12:02 PM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X