Linux Backup with TAR and Cron Jobs
สารบัญ:
- ไฟล์ Crontab คืออะไร
- ไวยากรณ์และผู้ประกอบการ Crontab
- ไฟล์ Crontab ทั่วทั้งระบบ
- มาโครที่กำหนดไว้ล่วงหน้า
- คำสั่ง Linux Crontab
- ตัวแปร Crontab
- ข้อ จำกัด Crontab
- ตัวอย่างงาน Cron
- ข้อสรุป
Cron เป็น daemon การกำหนดเวลาที่ดำเนินงานตามช่วงเวลาที่กำหนด งานเหล่านี้เรียกว่างาน cron และส่วนใหญ่จะใช้ในการบำรุงรักษาหรือการดูแลระบบโดยอัตโนมัติ
ตัวอย่างเช่นคุณสามารถตั้งค่างาน cron เพื่อทำงานซ้ำอัตโนมัติเช่นการสำรองฐานข้อมูลหรือข้อมูลการปรับปรุงระบบด้วยแพตช์รักษาความปลอดภัยล่าสุดตรวจสอบการใช้พื้นที่ดิสก์การส่งอีเมลและอื่น ๆ แอปพลิเคชั่นบางตัวเช่น Drupal หรือ Magento ต้องใช้งาน cron เพื่อทำงานบางอย่าง
งาน cron สามารถกำหนดให้ทำงานโดยนาที, ชั่วโมง, วันที่ของเดือน, เดือน, วันในสัปดาห์หรือการรวมกันของเหล่านี้
ไฟล์ Crontab คืออะไร
Crontab (ตาราง cron) เป็นไฟล์ข้อความที่ระบุตารางเวลาของงาน cron ไฟล์ crontab มีสองประเภท ไฟล์ crontab ทั่วทั้งระบบและไฟล์ crontab ของผู้ใช้แต่ละคน
ไฟล์ crontab ของผู้ใช้จะถูกจัดเก็บตามชื่อผู้ใช้และตำแหน่งของผู้ใช้นั้นแตกต่างกันไปตามระบบปฏิบัติการ ในระบบที่ใช้ Red Hat เช่น CentOS ไฟล์ crontab จะถูกเก็บไว้ในไดเร็กทอรี
/var/spool/cron
ขณะที่ไฟล์ Debian และ Ubuntu จะถูกเก็บไว้ในไดเร็กทอรี
/var/spool/cron/crontabs
แม้ว่าคุณสามารถแก้ไขไฟล์ crontab ของผู้ใช้ด้วยตนเองขอแนะนำให้ใช้คำสั่ง
crontab
/etc/crontab
และไฟล์ภายในไดเร็กทอรี
/etc/cron.d
เป็นไฟล์ crontab ทั่วทั้งระบบที่สามารถแก้ไขได้โดยผู้ดูแลระบบเท่านั้น
ในลีนุกซ์ส่วนใหญ่คุณสามารถใส่สคริปต์ไว้ในไดเร็กทอรี
/etc/cron.{hourly, daily, weekly, monthly}
และสคริปต์จะถูกเรียกใช้งานทุก
hour/day/week/month
ไวยากรณ์และผู้ประกอบการ Crontab
แต่ละบรรทัดในไฟล์ crontab ของผู้ใช้มีหกฟิลด์คั่นด้วยช่องว่างตามด้วยคำสั่งที่จะรัน
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
ห้าฟิลด์แรกอาจมีหนึ่งค่าขึ้นไปคั่นด้วยเครื่องหมายจุลภาคหรือช่วงของค่าที่คั่นด้วยเครื่องหมายยัติภังค์
-
*
- เครื่องหมายดอกจันหมายถึงค่าใด ๆ หรือเสมอ หากคุณมีสัญลักษณ์ดอกจันในฟิลด์ชั่วโมงหมายความว่างานจะถูกดำเนินการทุกชั่วโมง,
- ตัวดำเนินการเครื่องหมายจุลภาคช่วยให้คุณสามารถระบุรายการของค่าสำหรับการทำซ้ำ ตัวอย่างเช่นถ้าคุณมี1, 3, 5
ในฟิลด์ชั่วโมงงานจะทำงานที่ 1 am, 3 am และ 5 am-
- โอเปอเรเตอร์ยัติภังค์ช่วยให้คุณสามารถระบุช่วงของค่า หากคุณมี1-5
ในฟิลด์วันของสัปดาห์งานจะทำงานทุกวัน (ตั้งแต่วันจันทร์ถึงวันศุกร์)/
- ตัวดำเนินการทับช่วยให้คุณสามารถระบุค่าที่จะทำซ้ำในช่วงเวลาที่แน่นอนระหว่างพวกเขา ตัวอย่างเช่นหากคุณมี*/4
ในฟิลด์ชั่วโมงหมายความว่าการดำเนินการจะดำเนินการทุกสี่ชั่วโมง มันเหมือนกับการระบุ0, 4, 8, 12, 16, 20
แทนเครื่องหมายดอกจันก่อนตัวดำเนินการทับคุณยังสามารถใช้ช่วงของค่า1-30/10
หมายถึงเหมือนกับ1, 11, 21
ไฟล์ Crontab ทั่วทั้งระบบ
ไวยากรณ์ของไฟล์ crontab ทั่วทั้งระบบแตกต่างจากผู้ใช้ crontab เล็กน้อย มันมีฟิลด์ผู้ใช้ที่จำเป็นเพิ่มเติมที่ระบุว่าผู้ใช้คนใดจะทำงาน cron
มีมาโครกำหนดการ Cron พิเศษหลายตัวที่ใช้เพื่อระบุช่วงเวลาทั่วไป คุณสามารถใช้ทางลัดนี้แทนข้อมูลจำเพาะวันที่ห้าคอลัมน์ คำสั่ง crontab อนุญาตให้คุณติดตั้งหรือเปิดไฟล์ crontab เพื่อแก้ไข คุณสามารถใช้คำสั่ง crontab เพื่อดูเพิ่มลบหรือแก้ไขงาน cron โดยใช้ตัวเลือกต่อไปนี้: คำสั่ง crontab เปิดไฟล์ crontab โดยใช้เอดิเตอร์ที่ระบุโดยตัวแปรสภาวะแวดล้อม
cron daemon ตั้งค่าตัวแปรสภาพแวดล้อมหลายตัวโดยอัตโนมัติ ผู้ดูแลระบบสามารถควบคุมผู้ใช้ที่สามารถเข้าถึงคำสั่ง
โดยค่าเริ่มต้นเฉพาะไฟล์
หากไฟล์
หากไม่มีไฟล์อยู่ผู้ใช้ที่มีสิทธิ์การดูแลระบบสามารถใช้คำสั่ง
ด้านล่างนี้เป็นตัวอย่างงาน cron ซึ่งจะแสดงวิธีกำหนดเวลางานให้ทำงานในช่วงเวลาที่แตกต่างกัน รันคำสั่งเวลา 15:00 น. ทุกวันตั้งแต่วันจันทร์ถึงวันศุกร์: เรียกใช้สคริปต์ทุก 5 นาทีและเปลี่ยนเส้นทางเอาต์พุตมาตรฐานเป็น
เรียกใช้สองคำสั่งทุกวันจันทร์เวลา 15.00 น. (ใช้โอเปอเรเตอร์
รันสคริปต์ PHP ทุก 2 นาทีและเขียนผลลัพธ์ลงในไฟล์: เรียกใช้สคริปต์ทุกวันทุกชั่วโมงทุกชั่วโมงตั้งแต่ 8.00 น. ถึง 16.00 น.: เรียกใช้สคริปต์ในวันจันทร์แรกของทุกเดือนเวลา 7 โมงเช้า เรียกใช้สคริปต์เวลา 09:15 น. ในวันที่ 1 และ 15 ของทุกเดือน: ตั้งค่าตัวแปร
คุณได้เรียนรู้วิธีสร้างงาน cron และกำหนดเวลางานตามวันและเวลาที่กำหนด อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ
* * * * * command(s)
* * * * * command(s)
มาโครที่กำหนดไว้ล่วงหน้า
@yearly
(หรือ
@annually
) - ทำงานที่ระบุปีละครั้งในเวลาเที่ยงคืน (12.00 น.) ของวันที่ 1 มกราคม เทียบเท่ากับ
0 0 1 1 *
@monthly
- รันภารกิจที่ระบุเดือนละครั้งเวลาเที่ยงคืนของวันแรกของเดือน เทียบเท่ากับ
0 0 1 * *
@weekly
- รันภารกิจที่ระบุสัปดาห์ละครั้งเวลาเที่ยงคืนของวันอาทิตย์ เทียบเท่ากับ
0 0 * * 0
@daily
- รันภารกิจที่ระบุวันละครั้งตอนเที่ยงคืน เทียบเท่ากับ
0 0 * * *
@hourly
- รันภารกิจที่ระบุหนึ่งครั้งต่อชั่วโมงที่จุดเริ่มต้นของชั่วโมง เทียบเท่ากับ
0 * * * *
@reboot
- รันภารกิจที่ระบุเมื่อเริ่มต้นระบบ (บูตเวลา)คำสั่ง Linux Crontab
crontab -e
- แก้ไขไฟล์ crontab หรือสร้างไฟล์ใหม่หากยังไม่มีอยู่
crontab -l
- แสดงเนื้อหาไฟล์ crontab
crontab -r
- ลบไฟล์ crontab ปัจจุบันของคุณ
crontab -i
- ลบไฟล์ crontab ปัจจุบันของคุณด้วยพรอมต์ก่อนที่จะลบ
crontab -u
VISUAL
หรือ
EDITOR
ตัวแปร Crontab
PATH=/usr/bin:/bin
หากคำสั่งที่คุณกำลังเรียกใช้อยู่ในพา ธ ที่ระบุ cron คุณสามารถใช้พา ธ สัมบูรณ์ไปยังคำสั่งหรือเปลี่ยนตัวแปร cron
$PATH
คุณไม่สามารถผนวกท้าย
:$PATH
เหมือนที่คุณทำกับสคริปต์ปกติเชลล์เริ่มต้นถูกตั้งค่าเป็น
/bin/sh
คุณสามารถตั้งค่าเปลือกที่แตกต่างกันโดยการเปลี่ยนตัวแปร SHELL.Cron เรียกคำสั่งจากไดเรกทอรีบ้านของผู้ใช้ ตัวแปร
HOME
สามารถแทนที่ได้โดยการตั้งค่าใน crontab การแจ้งเตือนทางอีเมลจะถูกส่งไปยังเจ้าของ crontab ในการเขียนทับพฤติกรรมเริ่มต้นคุณสามารถใช้ตัวแปรสภาพแวดล้อม
MAILTO
พร้อมรายการ (คั่นด้วยเครื่องหมายจุลภาค) ของที่อยู่อีเมลทั้งหมดที่คุณต้องการรับการแจ้งเตือนทางอีเมล หาก
MAILTO
ถูกกำหนด แต่ว่างเปล่า (
MAILTO=""
) จะไม่มีการส่งจดหมายใด ๆข้อ จำกัด Crontab
crontab
โดยใช้ไฟล์
/etc/cron.allow
และ
/etc/cron.allow
ไฟล์ประกอบด้วยรายการชื่อผู้ใช้หนึ่งชื่อผู้ใช้ต่อบรรทัด
/etc/cron.deny
มีอยู่และว่างเปล่าซึ่งหมายความว่าผู้ใช้ทั้งหมดสามารถใช้คำสั่ง crontab หากคุณต้องการปฏิเสธการเข้าถึงคำสั่ง crontab ให้กับผู้ใช้เฉพาะเพิ่มชื่อผู้ใช้ไปยังไฟล์นี้
/etc/cron.allow
มีอยู่เฉพาะผู้ใช้ที่แสดงรายการในไฟล์นี้เท่านั้นที่สามารถใช้คำสั่ง
crontab
crontab
ได้ตัวอย่างงาน Cron
0 15 * * 1-5 command
dev null
เฉพาะข้อผิดพลาดมาตรฐานเท่านั้นที่จะถูกส่งไปยังที่อยู่อีเมลที่ระบุ:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
ระหว่างคำสั่ง):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
,
PATH
,
SHELL
และ
MAILTO
กำหนดเองและรันคำสั่งทุกนาที
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
ข้อสรุป
Asustek เสนอ Eee PC ด้วย Built-in 3G Wireless

Asustek จะเสนอ Eee PC ในปลายปีนี้ด้วยการเชื่อมต่อ 3G ในตัว
Hands on ด้วย M912X Mini-laptop ขนาดกะทัดรัดของ Giga-byte

มินิโน้ตบุ๊ก M912 ของ Giga-byte มีเน็ตบุ๊ครุ่นอื่น ๆ น้อย ๆ หมุนได้ 180 องศา
สามเมืองในสหรัฐฯควรดู Centrino 2 ด้วย WiMax ในปีนี้

น้อยมาก Centrino 2 ระบบจะจัดส่งกับ WiMax ปีนี้ด้วยระบบดังกล่าว คาดว่าจะได้รับการปล่อยตัวเฉพาะในสหรัฐฯ