OnWorks Linux ແລະ Windows Online WorkStations

Logo

ໂຮດຕິ້ງອອນໄລນ໌ຟຣີສໍາລັບ WorkStations

<Previous | ເນື້ອໃນ | ຕໍ່ໄປ>

ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະເລືອກເອົາເວລາປະຕິບັດທີ່ແປກປະຫລາດ, ເພາະວ່າວຽກຂອງລະບົບມັກຈະເຮັດວຽກຢູ່ໃນຊົ່ວໂມງ "ຮອບ", ດັ່ງທີ່ເຈົ້າເຫັນໃນພາກ 4.4.4 ໃນພາກຕໍ່ໄປ. ຕົວຢ່າງ, ວຽກມັກຈະດໍາເນີນການໃນເວລາ 1 ໂມງເຊົ້າ (ເຊັ່ນ: ການສ້າງດັດສະນີລະບົບເພື່ອປັບປຸງຖານຂໍ້ມູນສະຖານທີ່ມາດຕະຖານ), ດັ່ງນັ້ນການເຂົ້າໄປໃນເວລາຂອງ 0100 ອາດຈະເຮັດໃຫ້ລະບົບຂອງທ່ານຊ້າລົງໄດ້ງ່າຍກວ່າການດັບໄຟ. ເພື່ອປ້ອງກັນບໍ່ໃຫ້ວຽກເຮັດວຽກທັງຫມົດໃນເວລາດຽວກັນ, ທ່ານອາດຈະໃຊ້ batch ຄໍາສັ່ງ, ເຊິ່ງຈັດຄິວຂະບວນການແລະສົ່ງວຽກຢູ່ໃນຄິວໄປຫາລະບົບດ້ວຍວິທີທີ່ມີຄວາມສົມດູນກັນ, ປ້ອງກັນການລະເບີດຂອງການໃຊ້ຊັບພະຍາກອນຂອງລະບົບຫຼາຍເກີນໄປ. ເບິ່ງໜ້າຂໍ້ມູນສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.


ຮູບພາບເລັກນ້ອຍ

4.4.4. Cron ແລະ crontab


ລະບົບ cron ໄດ້ຖືກຄຸ້ມຄອງໂດຍ cron ເດມອນ ມັນໄດ້ຮັບຂໍ້ມູນກ່ຽວກັບໂຄງການໃດແລະເວລາທີ່ເຂົາເຈົ້າຄວນຈະດໍາເນີນການຈາກການເຂົ້າ crontab ຂອງລະບົບແລະຜູ້ໃຊ້. ຜູ້ໃຊ້ຮາກເທົ່ານັ້ນທີ່ມີການເຂົ້າເຖິງ crontabs ລະບົບ, ໃນຂະນະທີ່ຜູ້ໃຊ້ແຕ່ລະຄົນຄວນຈະມີການເຂົ້າເຖິງ crontabs ຂອງຕົນເອງເທົ່ານັ້ນ. ໃນບາງລະບົບ (ບາງຄົນ) ຜູ້ໃຊ້ອາດຈະບໍ່ມີການເຂົ້າເຖິງສະຖານທີ່ cron.


ໃນຕອນເລີ່ມຕົ້ນຂອງລະບົບ, cron daemon ຄົ້ນຫາ / var / spool / cron / ສໍາລັບການເຂົ້າ crontab ທີ່ມີຊື່ຫຼັງຈາກບັນຊີໃນ / etc / passwd, ມັນຄົ້ນຫາ /etc/cron.d/ ແລະມັນຄົ້ນຫາ / etc / crontab, ຫຼັງຈາກນັ້ນໃຊ້ຂໍ້ມູນນີ້ທຸກໆນາທີເພື່ອກວດເບິ່ງວ່າມີບາງສິ່ງບາງຢ່າງທີ່ຕ້ອງເຮັດ. ມັນປະຕິບັດຄໍາສັ່ງເປັນຜູ້ໃຊ້ທີ່ເປັນເຈົ້າຂອງໄຟລ໌ crontab ແລະສົ່ງຜົນໄດ້ຮັບຂອງຄໍາສັ່ງໃດໆກັບເຈົ້າຂອງ.


ໃນລະບົບທີ່ໃຊ້ Vixie cron, ວຽກທີ່ເກີດຂື້ນເປັນຊົ່ວໂມງ, ປະຈໍາວັນ, ອາທິດແລະປະຈໍາເດືອນແມ່ນຖືກເກັບໄວ້ໃນລາຍການແຍກຕ່າງຫາກໃນ. / ແລະອື່ນໆ ເພື່ອຮັກສາພາບລວມ, ກົງກັນຂ້າມກັບຟັງຊັນ UNIX cron ມາດຕະຖານ, ບ່ອນທີ່ວຽກງານທັງຫມົດຖືກເຂົ້າໄປໃນໄຟລ໌ໃຫຍ່ຫນຶ່ງ.


ຕົວຢ່າງຂອງໄຟລ໌ Vixie crontab:


[root@blob /etc]# crontab ຫຼາຍ SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=ຮາກ

ໜ້າຫຼັກ=/


# ພາກສ່ວນແລ່ນ

# ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆຊົ່ວໂມງ

01 * * * * root run-parts /etc/cron.hourly

# ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆມື້

02 4 * * * root run-parts /etc/cron.daily

# ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆອາທິດ

22 4 * * 0 root run-parts /etc/cron.weekly ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆເດືອນ

42 4 1 * * root run-parts /etc/cron.monthly

[root@blob /etc]# crontab ຫຼາຍ SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=ຮາກ

ໜ້າຫຼັກ=/


# ພາກສ່ວນແລ່ນ

# ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆຊົ່ວໂມງ

01 * * * * root run-parts /etc/cron.hourly

# ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆມື້

02 4 * * * root run-parts /etc/cron.daily

# ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆອາທິດ

22 4 * * 0 root run-parts /etc/cron.weekly ຄໍາສັ່ງທີ່ຈະປະຕິບັດທຸກໆເດືອນ

42 4 1 * * root run-parts /etc/cron.monthly


ຮູບພາບເລັກນ້ອຍທາງ​ເລືອກ

ທ່ານຍັງສາມາດນໍາໃຊ້ໄດ້ crontab -l ຄໍາສັ່ງເພື່ອສະແດງ crontabs.

ບາງຕົວແປຖືກກໍານົດ, ແລະຫຼັງຈາກນັ້ນມີການກໍານົດເວລາຕົວຈິງ, ຫນຶ່ງແຖວຕໍ່ວຽກ, ເລີ່ມຕົ້ນດ້ວຍ 5 ຊ່ອງເວລາແລະວັນທີ. ພາກສະຫນາມທໍາອິດປະກອບມີນາທີ (ຈາກ 0 ຫາ 59), ທີສອງກໍານົດຊົ່ວໂມງປະຕິບັດ (0-23), ທີສາມແມ່ນມື້ຂອງເດືອນ (1-31), ຫຼັງຈາກນັ້ນຈໍານວນຂອງເດືອນ (1-12) , ສຸດທ້າຍແມ່ນມື້ຂອງອາທິດ (0-7, ທັງ 0 ແລະ 7 ແມ່ນວັນອາທິດ). ເຄື່ອງໝາຍດາວຢູ່ໃນຊ່ອງຂໍ້ມູນເຫຼົ່ານີ້ສະແດງເຖິງຂອບເຂດທີ່ຍອມຮັບໄດ້ທັງໝົດສຳລັບຊ່ອງຂໍ້ມູນ. ລາຍຊື່ຖືກອະນຸຍາດ; to execute a job from Monday to Friday enter 1-5 in the final field , ການ​ປະ​ຕິ​ບັດ​ວຽກ​ເຮັດ​ງານ​ທໍາ​ວັນ​ຈັນ​, ວັນ​ພຸດ​ແລະ​ວັນ​ສຸກ​ເຂົ້າ 1,3,5​.


ຫຼັງຈາກນັ້ນ, ຜູ້ໃຊ້ທີ່ຄວນຈະດໍາເນີນການຂະບວນການທີ່ໄດ້ລະບຸໄວ້ໃນຄໍລໍາສຸດທ້າຍ. ຕົວຢ່າງຂ້າງເທິງນີ້ແມ່ນມາຈາກການຕັ້ງຄ່າ Vixie cron ບ່ອນທີ່ root ດໍາເນີນການໂຄງການ ພາກສ່ວນແລ່ນ ໃນ​ໄລ​ຍະ​ທີ່​ເປັນ​ປົກ​ກະ​ຕິ​, ມີ​ລາຍ​ການ​ທີ່​ເຫມາະ​ສົມ​ເປັນ​ທາງ​ເລືອກ​. ໃນໄດເລກະທໍລີເຫຼົ່ານີ້, ວຽກຕົວຈິງທີ່ຈະປະຕິບັດໃນເວລາທີ່ກໍານົດແມ່ນຖືກເກັບໄວ້ເປັນ Shell scripts, ເຊັ່ນ script ນ້ອຍນີ້ທີ່ດໍາເນີນການປະຈໍາວັນເພື່ອປັບປຸງຖານຂໍ້ມູນທີ່ໃຊ້ໂດຍ ຊອກຫາສະຖານທີ່ ຄໍາສັ່ງ:


billy@ahost cron.daily]$ cat slocate.cron

#! / bin / sh

renice +19 -p $$ >/dev/null 2>&1

/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \ "/tmp,/var/tmp, /usr/tmp,/afs,/net"

billy@ahost cron.daily]$ cat slocate.cron

#! / bin / sh

renice +19 -p $$ >/dev/null 2>&1

/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \ "/tmp,/var/tmp, /usr/tmp,/afs,/net"

ຜູ້​ໃຊ້​ຄວນ​ຈະ​ແກ້​ໄຂ crontabs ຂອງ​ເຂົາ​ເຈົ້າ​ໃນ​ວິ​ທີ​ການ​ທີ່​ປອດ​ໄພ​ໂດຍ​ການ​ນໍາ​ໃຊ້​ crontab -e ຄໍາສັ່ງ. ນີ້ຈະປ້ອງກັນບໍ່ໃຫ້ຜູ້ໃຊ້ເປີດຫຼາຍກວ່າຫນຶ່ງສໍາເນົາຂອງໄຟລ໌ crontab ຂອງລາວໂດຍບັງເອີນ. ບັນນາທິການເລີ່ມຕົ້ນແມ່ນ vi (ເບິ່ງບົດທີ 6, ແຕ່ທ່ານສາມາດນໍາໃຊ້ຕົວແກ້ໄຂຂໍ້ຄວາມໃດໆ, ເຊັ່ນ: ຈີມ or gedit ຖ້າທ່ານຮູ້ສຶກສະດວກສະບາຍກັບບັນນາທິການ GUI.


ເມື່ອທ່ານອອກ, ລະບົບຈະບອກທ່ານວ່າມີການຕິດຕັ້ງ crontab ໃໝ່.


ການເຂົ້າ crontab ນີ້ເຕືອນ billy ໄປສະໂມສອນກິລາຂອງລາວທຸກໆຄືນວັນພະຫັດ:


billy:~> crontab-l

# ຢ່າແກ້ໄຂໄຟລ໌ນີ້ - ແກ້ໄຂຕົ້ນສະບັບແລະຕິດຕັ້ງໃຫມ່.

# (/tmp/crontab.20264 ຕິດຕັ້ງໃນ Sun Jul 20 22:35:14 2003)

billy:~> crontab-l

# ຢ່າແກ້ໄຂໄຟລ໌ນີ້ - ແກ້ໄຂຕົ້ນສະບັບແລະຕິດຕັ້ງໃຫມ່.

# (/tmp/crontab.20264 ຕິດຕັ້ງໃນ Sun Jul 20 22:35:14 2003)


# (Cron version -- $Id: chap4.xml,v 1.28 2007/09/19 12:22:26 tille Exp $)

38 16 * * 3 mail -s "ຕອນແລງກິລາ" billy

# (Cron version -- $Id: chap4.xml,v 1.28 2007/09/19 12:22:26 tille Exp $)

38 16 * * 3 mail -s "ຕອນແລງກິລາ" billy

ຫຼັງຈາກເພີ່ມວຽກທີ່ກໍານົດໄວ້ໃຫມ່, ລະບົບຈະບອກທ່ານວ່າມີການຕິດຕັ້ງ crontab ໃຫມ່. ທ່ານບໍ່ຈໍາເປັນຕ້ອງ restart cron daemon ສໍາລັບການປ່ຽນແປງທີ່ຈະມີຜົນ. ໃນຕົວຢ່າງ, billy ເພີ່ມແຖວໃໝ່ຊີ້ໄປຫາສະຄຣິບສຳຮອງ:


billy:~> crontab-e

45 15 * * 3 mail -s "ຕອນແລງກິລາ" billy

4 4 * * 4,7 /home/billy/bin/backup.sh


<-- ຂຽນ ແລະ ອອກ-->

crontab: ການຕິດຕັ້ງໃຫມ່ crontab billy:~>

billy:~> crontab-e

45 15 * * 3 mail -s "ຕອນແລງກິລາ" billy

4 4 * * 4,7 /home/billy/bin/backup.sh


<-- ຂຽນ ແລະ ອອກ-->

crontab: ການຕິດຕັ້ງໃຫມ່ crontab billy:~>

ໄດ້ backup.sh script ຖືກປະຕິບັດທຸກໆວັນພະຫັດແລະວັນອາທິດ. ເບິ່ງພາກ 7.2.5 ສໍາລັບການແນະນໍາກ່ຽວກັບ Shell scripting. ຈົ່ງຈື່ໄວ້ວ່າຜົນຜະລິດຂອງຄໍາສັ່ງ, ຖ້າມີ, ຖືກສົ່ງໄປຫາເຈົ້າຂອງໄຟລ໌ crontab. ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ມີ​ການ​ບໍ​ລິ​ການ​ເມລ​ໄດ້​ຖືກ​ຕັ້ງ​ຄ່າ​, ທ່ານ​ອາດ​ຈະ​ຊອກ​ຫາ​ຜົນ​ຜະ​ລິດ​ຂອງ​ຄໍາ​ສັ່ງ​ຂອງ​ທ່ານ​ຢູ່​ໃນ mailbox ທ້ອງ​ຖິ່ນ​ຂອງ​ທ່ານ​,

/var/spool/mail/ , ໄຟລ໌ຂໍ້ຄວາມທໍາມະດາ.


OS Cloud Computing ຍອດນິຍົມຢູ່ OnWorks: