ຄວາມເຂົ້າໃຈແລະການນໍາໃຊ້ Cron: ຄູ່ມືທີ່ສົມບູນແບບເພື່ອຈັດຕາຕະລາງວຽກ
ຄຣອນ, ສັ້ນ ສຳ ລັບ ຄໍາສັ່ງດໍາເນີນການອອນໄລນ໌, ເປັນຕົວກໍານົດເວລາວຽກທີ່ມີປະສິດທິພາບໃນລະບົບປະຕິບັດການທີ່ຄ້າຍຄືກັບ Unix. ໄລຍະ cron ແມ່ນການຫຼິ້ນໃນຄໍາສັບຕ່າງໆ Kronos or chronos, ເຊິ່ງໃນ mythology ກເຣັກເປັນຕົວແທນຂອງເວລາ. ຊື່ cron ສໍາລັບຕາຕະລາງວຽກທີ່ໃຊ້ເວລາສະທ້ອນໃຫ້ເຫັນເຖິງຫນ້າທີ່ຂອງຕົນໃນການກໍານົດເວລາແລະການປະຕິບັດວຽກງານໃນເວລາສະເພາະຫຼືໄລຍະຫ່າງ, ເຮັດໃຫ້ມັນເປັນການອ້າງອີງທີ່ເຫມາະສົມກັບແນວຄວາມຄິດຂອງເວລາໃນ mythology.
Cron ຊ່ວຍໃຫ້ທ່ານສາມາດອັດຕະໂນມັດວຽກງານທີ່ຊ້ໍາກັນ, ປະຕິບັດ scripts ໃນຊ່ວງເວລາສະເພາະ, ແລະຮັກສາປະສິດທິພາບຂອງລະບົບ. ຄູ່ມືທີ່ສົມບູນແບບນີ້ຈະນໍາທ່ານຜ່ານທຸກສິ່ງທີ່ທ່ານຈໍາເປັນຕ້ອງຮູ້ກ່ຽວກັບ cron, ຈາກການຕິດຕັ້ງເຖິງການນໍາໃຊ້, ຄໍາສັບທີ່ສໍາຄັນ, ແລະຕົວຢ່າງລະຫັດທີ່ແທ້ຈິງ.
ສາລະບານ
- cron ແມ່ນຫຍັງ?
- ການຕິດຕັ້ງ Cron
- ແນວຄວາມຄິດພື້ນຖານ ແລະຄໍາສັບ
- Cron Syntax
- ຕົວຢ່າງແລະກໍລະນີການນໍາໃຊ້
- ຄວາມຜິດພາດທົ່ວໄປ ແລະການປະຕິບັດທີ່ດີທີ່ສຸດ
- ຊັບພະຍາກອນ cron ເພີ່ມເຕີມ
Cron ແມ່ນຫຍັງ?
Cron ແມ່ນ daemon (ຂະບວນການພື້ນຖານ) ທີ່ເຮັດວຽກຢູ່ໃນລະບົບທີ່ອີງໃສ່ Unix, ລວມທັງ Linux ແລະ macOS. ຈຸດປະສົງຕົ້ນຕໍຂອງມັນແມ່ນເພື່ອປະຕິບັດວຽກງານທີ່ກໍານົດເວລາອັດຕະໂນມັດ. ວຽກງານເຫຼົ່ານີ້ສາມາດຕັ້ງແຕ່ສະຄິບທີ່ງ່າຍດາຍຈົນເຖິງການບໍາລຸງຮັກສາລະບົບແລະການສໍາຮອງຂໍ້ມູນ.
ການຕິດຕັ້ງ Cron
ໃນລະບົບທີ່ຄ້າຍຄືກັບ Unix ສ່ວນໃຫຍ່, cron ແມ່ນຕິດຕັ້ງໄວ້ກ່ອນ. ທ່ານສາມາດກວດສອບການມີຢູ່ຂອງມັນໂດຍການເປີດ terminal ແລະພິມ:
crontab -e
ຖ້າຄໍາສັ່ງນີ້ເປີດຕົວແກ້ໄຂຕາຕະລາງ cron, ທ່ານໄດ້ຕິດຕັ້ງ cron. ຖ້າບໍ່, ທ່ານສາມາດຕິດຕັ້ງມັນໄດ້ໂດຍໃຊ້ຕົວຈັດການຊຸດຂອງລະບົບຂອງທ່ານ. ສໍາລັບຕົວຢ່າງ, ໃນ Ubuntu, ທ່ານສາມາດນໍາໃຊ້:
sudo apt-get install cron
ແນວຄວາມຄິດຂອງ Cron ແລະຄໍາສັບ
ກ່ອນທີ່ຈະເຂົ້າໄປໃນການໃຊ້ cron, ໃຫ້ພວກເຮົາເຂົ້າໃຈບາງແນວຄວາມຄິດແລະຄໍາສັບທີ່ສໍາຄັນ:
- crontab: ສັ້ນ ສຳ ລັບ ຕາຕະລາງ cron, ມັນເປັນໄຟລ໌ທີ່ມີບັນຊີລາຍຊື່ຂອງວຽກງານທີ່ກໍານົດໄວ້ສໍາລັບຜູ້ໃຊ້.
- Cronjob: ເປັນໜ້າວຽກ ຫຼືຄຳສັ່ງດຽວທີ່ກຳນົດໃຫ້ແລ່ນໃນເວລາສະເພາະ.
- Fields: ແຕ່ລະ cronjob ມີຫ້າຊ່ອງຂໍ້ມູນທີ່ກໍານົດເວລາທີ່ວຽກເຮັດວຽກ:
- ນາທີ (0-59)
- ຊົ່ວໂມງ (0-23)
- ມື້ຂອງເດືອນ (1-31)
- ເດືອນ (1-12)
- ມື້ຂອງອາທິດ (0-7, ບ່ອນທີ່ທັງ 0 ແລະ 7 ເປັນຕົວແທນຂອງວັນອາທິດ)
Cron Syntax
ຄວາມເຂົ້າໃຈ syntax ຂອງການເຂົ້າ crontab ແມ່ນສໍາຄັນ. ມັນປະຕິບັດຕາມຮູບແບບ:
* * * * * command-to-be-executed
ນີ້ແມ່ນ ຄຳ ອະທິບາຍທີ່ມີ ຄຳ ເຫັນທີ່ທ່ານສາມາດໃສ່ເຂົ້າໃນວຽກ cron ຂອງທ່ານ:
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
* * * * * /var/www/html/myscript.php
ແຕ່ລະຮູບດາວ (*) ສະແດງເຖິງຊ່ອງຂໍ້ມູນໃນການສະແດງຜົນ cron. ຕົວຢ່າງ: ເພື່ອຈັດຕາຕະລາງວຽກທຸກໆມື້ເວລາ 3:30 ໂມງແລງ, ເຈົ້າຈະໃຊ້:
30 15 * * * command-to-be-executed
Cron ຕົວຢ່າງແລະກໍລະນີການນໍາໃຊ້
ຂໍໃຫ້ພິຈາລະນາຕົວຢ່າງການປະຕິບັດບາງຢ່າງເພື່ອສະແດງໃຫ້ເຫັນເຖິງການນໍາໃຊ້ cron:
- ແລ່ນ Script ປະຈໍາວັນ: ເພື່ອປະຕິບັດ script ທຸກໆມື້ໃນເວລາທ່ຽງຄືນ, ທ່ານສາມາດນໍາໃຊ້:
0 0 * * * /path/to/script.sh
- ແລ່ນສະຄຣິບທຸກໆຊົ່ວໂມງ: ສໍາລັບວຽກງານຫນຶ່ງຊົ່ວໂມງ, ໃຊ້:
0 * * * * /path/to/script.sh
- ຂໍ້ມູນສຳຮອງປະຈຳອາທິດ: ເພື່ອກໍານົດເວລາສໍາຮອງຂໍ້ມູນປະຈໍາອາທິດໃນວັນອາທິດເວລາ 2 ໂມງເຊົ້າ, ໃຫ້ໃຊ້:
0 2 * * 0 /path/to/backup-script.sh
- ແລ່ນໜ້າວຽກໃນເດືອນສະເພາະ: ຮັບສະໝັກວຽກສະເພາະເດືອນມັງກອນ ແລະ ກໍລະກົດ ເວລາ 8:30 ໂມງເຊົ້າ:
30 8 * 1,7 * /path/to/script.sh
Cron Pitfalls ແລະການປະຕິບັດທີ່ດີທີ່ສຸດ
- ສິ່ງແວດລ້ອມ Variables: ໃຫ້ແນ່ໃຈວ່າວຽກ cron ຂອງທ່ານຕັ້ງຄ່າຕົວແປສະພາບແວດລ້ອມທີ່ຈໍາເປັນ, ເນື່ອງຈາກວ່າວຽກ cron ບໍ່ໄດ້ສືບທອດຕົວແປສະພາບແວດລ້ອມຂອງແກະຂອງທ່ານ.
- Permissions: ໃຫ້ແນ່ໃຈວ່າທ່ານກໍານົດການອະນຸຍາດໃຫ້ໄຟລ໌ script ຂອງທ່ານເປັນການປະຕິບັດໄດ້. ແຕ່ລະຄັ້ງທີ່ຂ້ອຍຈະບັນທຶກສະຄຣິບຂອງຂ້ອຍ, ຂ້ອຍພົບວ່າການອະນຸຍາດຂອງຂ້ອຍຕ້ອງຖືກຕັ້ງອີກຄັ້ງ!
- ຕົວແປເສັ້ນທາງ: ລະບຸເສັ້ນທາງອັນເຕັມທີ່ເພື່ອປະຕິບັດໄດ້ ແລະສະຄຣິບພາຍໃນວຽກ cron ຂອງທ່ານເພື່ອຫຼີກເວັ້ນບັນຫາກັບເສັ້ນທາງທີ່ກ່ຽວຂ້ອງ.
- ການທົດສອບ: ທົດສອບພວກມັນໃນສະພາບແວດລ້ອມທີ່ປອດໄພກ່ອນທີ່ຈະຕັ້ງວຽກ cron ທີ່ສໍາຄັນເພື່ອຮັບປະກັນວ່າພວກເຂົາເຮັດວຽກຕາມທີ່ຄາດໄວ້.
- ການຕັດໄມ້ທ່ອນ: ປ່ຽນເສັ້ນທາງຜົນຜະລິດຂອງວຽກ cron ຂອງທ່ານໄປຫາໄຟລ໌ບັນທຶກເພື່ອຕິດຕາມການປະຕິບັດຂອງພວກເຂົາແລະຄວາມຜິດພາດທີ່ອາດຈະເກີດຂື້ນ.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
ວຽກ cron ນີ້ແລ່ນສະຄິບ /path/to/script.sh
ທຸກໆມື້ໃນເວລາທ່ຽງຄືນ, ແລະຜົນຜະລິດ (ທັງ stdout ແລະ stderr) ທີ່ສ້າງຂຶ້ນໂດຍ script ຈະຖືກຕໍ່ທ້າຍກັບໄຟລ໌ບັນທຶກ.
/path/to/cron.log
. ນີ້ແມ່ນການປະຕິບັດທົ່ວໄປເພື່ອເກັບກໍາແລະບັນທຶກຜົນຜະລິດຂອງວຽກ cron ສໍາລັບຈຸດປະສົງການຕິດຕາມແລະແກ້ໄຂບັນຫາ. ໃຫ້ພວກເຮົາແຍກ syntax ວຽກ cron ສະເພາະນີ້:
- *0 0 * * *: ສ່ວນນີ້ກໍານົດເວລາສໍາລັບເວລາທີ່ວຽກ cron ຄວນດໍາເນີນການ. ໃນກໍລະນີນີ້, ມັນຖືກກໍານົດໃຫ້ແລ່ນທຸກໆມື້ໃນເວລາທ່ຽງຄືນ (0 ນາທີ 0 ຊົ່ວໂມງ).
- /path/to/script.sh: ນີ້ແມ່ນຄຳສັ່ງ ຫຼື script ເພື່ອປະຕິບັດເມື່ອວຽກ cron ແລ່ນ. ຕົວຢ່າງນີ້ສະແດງໃຫ້ເຫັນ script ທີ່ຕັ້ງຢູ່
/path/to/script.sh
. - >> /path/to/cron.log: ສ່ວນນີ້ປ່ຽນເສັ້ນທາງຜົນຜະລິດມາດຕະຖານ (stdout) ຂອງວຽກ cron ໄປຫາໄຟລ໌ບັນທຶກທີ່ມີຊື່
cron.log
ຕັ້ງຢູ່/path/to/
. ໄດ້>>
ຜູ້ປະຕິບັດການຕື່ມຂໍ້ມູນໃສ່ກັບໄຟລ໌ບັນທຶກ, ດັ່ງນັ້ນຖ້າໄຟລ໌ບໍ່ມີ, ມັນຈະຖືກສ້າງຂື້ນ, ແລະຖ້າມັນມີຢູ່ແລ້ວ, ຜົນຜະລິດຈະຖືກເພີ່ມໃສ່ໃນຕອນທ້າຍຂອງໄຟລ໌. - 2> & 1: ນີ້ຖືກນໍາໃຊ້ສໍາລັບການປ່ຽນເສັ້ນທາງທັງສອງຜົນໄດ້ຮັບມາດຕະຖານ (stdout) ແລະຄວາມຜິດພາດມາດຕະຖານ (stderr) ໄປຫາໄຟລ໌ບັນທຶກດຽວກັນ. ໄດ້
2
ເປັນຕົວແທນ stderr, ແລະ1
ເປັນຕົວແທນຂອງ stdout. ດັ່ງນັ້ນ,2>&1
ຫມາຍຄວາມວ່າທັງ stdout ແລະ stderr ຖືກໂອນໄປຫາໄຟລ໌ບັນທຶກດຽວກັນທີ່ລະບຸໄວ້ກ່ອນຫນ້ານີ້.
Cron ເປັນເຄື່ອງມືທີ່ມີຄຸນຄ່າສໍາລັບການອັດຕະໂນມັດວຽກງານໃນລະບົບທີ່ອີງໃສ່ Unix. ດ້ວຍຕົວເລືອກການກໍານົດເວລາທີ່ມີຄວາມຍືດຫຍຸ່ນຂອງມັນ, ມັນສາມາດເຮັດໃຫ້ການຄຸ້ມຄອງລະບົບງ່າຍຂຶ້ນແລະປັບປຸງປະສິດທິພາບ. ໂດຍການເຂົ້າໃຈ syntax ຂອງມັນແລະປະຕິບັດຕາມການປະຕິບັດທີ່ດີທີ່ສຸດ, ທ່ານສາມາດ harness ອໍານາດຂອງ cron ເພື່ອອັດຕະໂນມັດວຽກງານປົກກະຕິຂອງທ່ານປະສິດທິຜົນ.
ຊັບພະຍາກອນ Cron ເພີ່ມເຕີມ
- Unix Daemon - ຄະນະບໍດີ Wilson