نمایش نتایج 1 تا 40 از 43

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

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #13

    دستور at




    دستور at برای زمان بندی کارها , مثلا اجرا شدن یک دستور در زمان خاصی یا اجرا شدن یک اسکریپت در زمان خاصی استفاده میشود
    دستور مشابه دیگه ای مثل دستور at هستش که اسمش cron هستش
    اموزش cron :
    http://wiki.ubuntu.ir/CronHowto?highlight=%28cron%29
    یکی از فرق های مهم cron و at در این هست که cron قابلیت تکرار شدن رو داره (( مثلا هر روز در زمان خاصی کار خاصی انجام بشه)) اما at کاری که بهش دادیم رو یک بار انجام میدهد


    شکل کلی دستور

    at [-V] [-q queue] [-f file] [-mldv] timespec...
    at [-V] [-q queue] [-f file] [-mkdv] [-t time]
    یا به شکل ساده تر

     at time date

    تعیین زمان در at

    تنها قسمت مهم دستور at تعیین زمان اجرا شدن دستور هستش
    در دستور at وقتی که دستور به همراه زمان معیین شده زدین یک صفه باز میشه که به صورت زیر هستش در اون صفه میتونین دستور مورد نظر خودتونو بنویسین و سپس کلید ترکیبی Ctrl+D رو بزنین تا اجرا بشه


    alieblice@ubuntu:~$ at 12:00 tomorrow + 3 min
    warning: commands will be executed using /bin/sh
    at> ls > ~/Desktop/ls.txt
    at> حالا کنترل= دی رو بزنین <EOT>
    job 73 at Fri Jul 10 12:03:00 2009
    alieblice@ubuntu:~$
    جزع به جزع دستور بالا در پایین تر توضیح داده شده

    معنی کلمات در تعیین زمان

    اگه فرض کنیم ساعت وتاریخ هم اکنون

     10:00 AM Tuesday, September 18, 2001
    باشد ,, هر کدوم از زمان یندی های زیر معنیشونو جلوشون نوشته


    at noon = 12:00 PM September 18, 2001
    at midnight = 12:00 AM September 19, 2001
    at teatime = 4:00 PM September 18, 2001
    at tomorrow = 10:00 AM September 19, 2001
    at noon tomorrow = 12:00 PM September 19, 2001
    at next week = 10:00 AM September 25, 2001

    همون طور که در بالا میبینین بعضی کلمات معنی خاصی دارن مثلا noon یعنی ساعت 12:00 pm و کلمات به صورت ترکیبی هم میتونن استفاده بشن مثلا

     at noon tomorrow
    یعنی فردا ((روز بعد از امروز )) ساعت 12:00 pm


     at next week
    اگه امروز سه شنبه ساعت 10 صبح باشه دستور بالا میگه هفته ی دیگهسه شنبه ساعت 10 صبح کار انجام بشه


    مشخص کردن روز های هفته

    برای هر روز از هفته یک کلمه داریم که میتونین تمام حروفشون رو به صورت بزرگ یا کوچک بنویسین فرقی نداره البته اسم کوچکش هم با حروف کوچک یا بزرگ میتونین بنویسین فرقی نداره

     day_of_week     : SUN | MON | TUE | WED | THU | FRI | SAT
    از چپ به راست به ترتیب بالا یعنی

     Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |  
    چند مثال :

     at next monday  =    10:00 AM September 24, 2001 
    اگه الان ساعت 10 صبح باشه یک شنبه بعدی همین ساعت دستور اجرا میشه


     at 04:46 am fri
    روز جمعه ساعت 4:46 دقیقه صبح کارو انجام میده



    نام گذاری ماه ها

    ماه ها هم مثل روز های هفته برای خودشون اختصار دارن که به شکل زیر هستش

    month_name : JAN | FEB | MAR | APR | MAY | JUN
    | JUL | AUG | SEP | OCT | NOV | DEC

    چند مثال

     at 2:30 PM Sept 21
    ساعت 2:5 ظهر در تاریخ 21 سپتامر


     at noon jul 24

    چند مثال اضافه از تمام قسمتایی که تا الان گفتیم
    اگه فرض کنیم هم اکنون ساعت و تاریخ

     10:00 AM Tuesday, September 18, 2001 

    at 9:00 AM = 9:00 AM September 19, 2001
    at 2:30 PM = 2:30 PM September 18, 2001
    at 1430 = 2:30 PM September 18, 2001
    at 2:30 PM tomorrow = 2:30 PM September 19, 2001
    at 2:30 PM next month = 2:30 PM October 18, 2001
    at 2:30 PM Fri = 2:30 PM September 21, 2001
    at 2:30 PM Sept 21 = 2:30 PM September 21, 2001
    at 2:30 PM 9/21/2010 = 2:30 PM September 21, 2010
    at 5 pm Friday = خودتون حدث بزنین
    نکته : بعد از next مقادیری که بر اثاث واحد های زیر باشه میتونه بیاد

    * minute[s]
    * hour[s]
    * day[s]
    * week[s]
    * month[s]
    * year[s]


    نکته
    :

    در

     at 1430 =    2:30 PM September 18, 2001     
    از am و pm نمیتونین استفاده کنین باید زمان رو به صورت 24 ساعته بزنین یعنی مثلا به جای 2 ظهر بزنین 14



    زمان معکوس ((Countdown))

    شاید بخاین کاری رو در مثلا 5 دقیقه اینده انجام بدین یا مثلا در فردا پنج دقیقه بعد از ساعت 12 ظهر خوب این 5 دقیقه ها رو باید به صورت زیر بنویسین
    نکته : مقاکد:
    مفادیری که بعد از بعلاوه می ایند بر اثاث یکی از این واحد های زیر میتونه باشه
    * minute[s]
    * hour[s]
    * day[s]
    * week[s]
    * month[s]
    * year[s]
    مثلا برای این که کاری رو در 25 دقیقه اینده از هم اکنون انجام بدین دستورو این جوری بنویسین

     at now +15 min
    به جای min میتونین minutes یا minute هم بزارین


    برای این که کاری رو فردا 3 ساعت بعد از ساعت 12 انجام بدین دستورو این شکلی بنویسین

    at noon tomorrow +3 hours
    یا
    at 12:00 pm tomorrow +3 hours


    جند مثال از این قسمت
    اگه فرض کنیم زمان و تاریخ هم اکنون

     10:00 AM Tuesday, September 18, 2001 
    معنی هر مثال جلوش نوشته شده

    at now + 30 minutes = 10:30 AM September 18, 2001
    at now + 1 hour = 11:00 AM September 18, 2001
    at now + 2 days = 10:00 AM September 20, 2001
    at 4 PM + 2 days = 4:00 PM September 20, 2001
    at now + 3 weeks = 10:00 AM October 9, 2001
    at now + 4 months = 10:00 AM January 18, 2002
    at now + 5 years = 10:00 AM September 18, 2007


    چند مثال واقعی به همراه کار

    روش کار به این صورت هستش که شما اول دستور at رو به همراه زمان اجرا شدنش مینویسین و سپس برای شما یک صفه باز میشه که در اون جا میتونین دستور مورد نظرتونو بنویسین و برای این که کار خود را ذخیره کنین کلید ترکیبی Ctrl+D رو بزنین

    در دستور زیر کاری رو فردا 3 دقیقه بعد از ساعت 12 انجام میدهد

    alieblice@ubuntu:~$ at 12:00 tomorrow + 3 min
    warning: commands will be executed using /bin/sh
    at> ls > ~/Desktop/ls.txt
    at> <EOT>
    job 73 at Fri Jul 10 12:03:00 2009
    alieblice@ubuntu:~$
    دستور بالا رو میتونین به صورت زیر هم بنویسین که فکر کنم راحت تر باشه

    alieblice@ubuntu:~$ echo ls > ~/Desktop/ls.txt | at 12:00 tomorrow + 3 min
    warning: commands will be executed using /bin/sh
    job 74 at Fri Jul 10 12:03:00 2009
    alieblice@ubuntu:~$


    اپشن v- (( وی کوچک ))


    اپشن v- برای نشون دادن زمان اجرا شدن دستور در همان اول کار یعنی قبل از امدنه صفحه ای که شما توش دستورو مینویسین

    alieblice@ubuntu:~$ at -v noon jul 24 + 10 min
    Fri Jul 24 12:10:00 2009

    warning: commands will be executed using /bin/sh
    at> cp -r /home/alielbice /var/backup/alieblice-bkp
    at> <EOT>
    job 77 at Fri Jul 24 12:10:00 2009
    alieblice@ubuntu:~$


    اپشن f-


    اپشن f- برای دادن لیستی از کار هایی که میخایم انجام بدیم از طریق یک فایل متنی هستش

    alieblice@ubuntu:~$ cat myjobs.txt
    /home/sathiya/calculate-space.sh
    /path/to/a/shell-script
    /path/to/any/command/or/script

    alieblice@ubuntu:~$ at -f /home/alieblice/jobs.txt now +1 hour
    warning: commands will be executed using /bin/sh
    job 79 at Thu Jul 9 08:07:00 2009
    alieblice@ubuntu:~$


    اپشن l-

    نکته : به جای l- میتونین از atq هم استفاده کنین
    این اپشن و atq برای لیست کردن کار هایی که هنوز انجام نشده اند و در انتظار رسیدن زمان تعیین شده هستن استفاده میشه

    alieblice@ubuntu:~$ at -l
    79 Thu Jul 9 08:07:00 2009 a alieblice
    77 Fri Jul 24 12:10:00 2009 a alieblice
    73 Fri Jul 10 12:03:00 2009 a alieblice
    74 Fri Jul 10 12:03:00 2009 a alieblice
    alieblice@ubuntu:~$
    همون طور که میبینین هر کار برای خودش عددی دارد که از اون برای پاک کردن و دیدن محتویات اون استفاده میشه

    پاک کردن یک کار


    از اپشن d- یا atrm میتونین استفاده کنین
    برای این کار نیاز به شماره اون کار دارین که میتونین با لیست کردنشون شمارشونو یدست بیارین
    مثلا در زیر کار به شماره 77 رو پاک میکنیم

    alieblice@ubuntu:~$ atq
    79 Thu Jul 9 08:07:00 2009 a alieblice
    77 Fri Jul 24 12:10:00 2009 a alieblice
    73 Fri Jul 10 12:03:00 2009 a alieblice
    74 Fri Jul 10 12:03:00 2009 a alieblice
    alieblice@ubuntu:~$
    alieblice@ubuntu:~$ at -d 77
    alieblice@ubuntu:~$
    alieblice@ubuntu:~$ at -l
    79 Thu Jul 9 08:07:00 2009 a alieblice
    73 Fri Jul 10 12:03:00 2009 a alieblice
    74 Fri Jul 10 12:03:00 2009 a alieblice
    alieblice@ubuntu:~$



    دیدن اطلاعات یک کار

    برای این کار از اپشن c- ((سی کوچک )) استفاده کنین

    خروجیش زیاد بود برای همین فقط خود دستور رو میزارم

    alieblice@ubuntu:~$ at -l
    73 Fri Jul 10 12:03:00 2009 a alieblice
    74 Fri Jul 10 12:03:00 2009 a alieblice
    alieblice@ubuntu:~$
    alieblice@ubuntu:~$ at -c 73
    #!/bin/sh
    # atrun uid=1000 gid=1000
    # mail alieblice 0
    umask 22

    خروجی کامل نیست


    محدود کردن دسترسی به at

    برای این که دسترسی کاربران رو به دستور at ببندین یا دسترسی رو برای یک سری کار بر خاص باز بگذارین میتونین از 2 فایل زیر استفاده کنین
    سیستم اول فلدر at.allow رو چک میکنه اگه وجود نداشت میره سراغ at.deny
    /etc/at.allow
    /etc/at.deny
    مثلا اگه کاربر tia رو به فایل at.deny اضافه کنین موقعی که کاربر tia بخاد از at استفاده کنه این اررور رو میگیره

    tia@ubuntu:~$ at 12:00 pm
    You do not have permission to use at.
    tia@ubuntu:~$
    اگرم بخاین که at رو برای فقط کاربرای مشخصی باز بگذارین از فلدر at.allow استفده کنین
    ممکنه این فلدر وجود نداشته باشه میتونین بسازینش


    فایل های مرتبط به at


    /var/spool/cron/atjobs
    /var/spool/cron/atspool
    /var/run/utmp
    /etc/at.allow
    /etc/at.deny


    منابع :
    http://www.thegeekstuff.com/2010/06/...mand-examples/
    http://publib.boulder.ibm.com/infoce...ixcmds1/at.htm
    http://pcsupport.about.com/od/comman...at-command.htm
    http://www.softpanorama.org/Utilities/at.shtml
    http://content.hccfl.edu/pollock/Unix/AtDemo.htm
    آخرین ویرایش به وسیله alieblice : دوشنبه 20 تیر 1390 در 13:09 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •