ฟอร์แมตไดรฟ์เสริม
การฟอร์แมตไดรฟ์เสริม ใช้สำหรับฟอร์แมตไดรฟ์เสริม (Extra Disk) เช่น ไดรฟ์ D: ของเครื่องลูกแต่ละเครื่อง โดยปกติแล้วจะกำหนดเวลาฟอร์แมตไว้ เช่น ฟอร์แมตทุกเที่ยงคืน
เนื้อหา
สคริปต์
สคริปต์สำหรับฟอร์แมตไดรฟ์เสริมอยู่ในไฟล์ /app/script/format_extra_once.php โดยสคริปต์นี้จะฟอร์แมตไฟล์ตามที่กำหนดไว้
อย่างไรก็ดี ก่อนใช้งานจะต้องแก้ไข config ให้ตรงกับที่ใช้ก่อน ดังนี้
#!/usr/bin/php
<?php
/*
* Script to format extra disk.
* This script should be run from cron.
*/
$directory = '/image';
$num_disk = 1;
$computer_clusters = array(
'net' => array(
'01', '02', '03', '04', '05', '06', '07', '08', '09', '10',
'11', '12',
),
'spice' => array(
'01', '02', '03', '04', '05', '06', '07', '08', '09', '10',
'11', '12', '13', '14', '15', '16',
),
);
$losetup = '/sbin/losetup';
$mkfs = '/sbin/mkfs.ntfs -f -I -L DRIVE_D';
$ret = shell_exec("{$losetup} -f");
$lodevice = trim($ret);
foreach ($computer_clusters as $prefix => $computers) {
foreach ($computers as $computer) {
for ($disk = 1; $disk <= $num_disk; $disk++) {
shell_exec("{$losetup} -o 1048576 {$lodevice} {$directory}/{$prefix}{$computer}e{$disk}.img\n");
shell_exec("{$mkfs} {$lodevice}\n");
sleep(1);
shell_exec("{$losetup} -d {$lodevice}\n");
}
}
}
ในส่วนสีน้ำเงินคือส่วนที่ต้องแก้ โดยมีรูปแบบคือ ด้านซ้ายจะเป็นชื่อเครื่องในส่วนที่ตรงกัน ส่วนด้านขวาในคำสั่ง array เป็นลำดับด้านท้ายของเครื่อง เช่น
ชื่อเครื่องทั้งหมด | ค่า config |
---|---|
pc01, pc02, pc03, pc04, pc05, pc06, pc07, pc08, pc09, pc10 | 'pc' => array( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10' ) |
pca01, pca02, pca03, pca04, pca05, pcb01, pcb02, pcb03, pcb04, pcb05 | 'pc' => array( 'a01', 'a02', 'a03', 'a04', 'a05', 'b01', 'b02, 'b03', 'b04', 'b05' ) |
net01, net02, net03, net04, net05, print01, print02, print03, print04, print05 | 'net' => array( '01', '02', '03', '04', '05' ), 'print' => array( '01', '02, '03', '04', '05' ) |
การเรียกใช้
การเรียกใช้สคริปต์ฟอร์แมตไดรฟ์เสริม จะทำผ่านระบบตั้งเวลาทำงาน หรือ cron
เปลี่ยนโปรแกรมแก้ไขไฟล์
ในการแก้ไข config ของ cron จะมีการเรียกโปรแกรมแก้ไขไฟล์ขึ้นมาทำงาน ซึ่งปกติแล้วจะเป็นโปรแกรม vi ซึ่งบางคนอาจใช้งานไม่ถนัด ดังนั้นจึงต้องเปลี่ยนโปรแกรมแก้ไขไฟล์ก่อน เช่น ถ้าต้องการเปลี่ยนโปรแกรมแก้ไขไฟล์เป็น pico ก็สามารถใช้คำสั่งได้ดังนี้
export EDITOR=pico
ซึ่งสามารถตรวจสอบได้ว่าปัจจุบันโปรแกรมแก้ไขไฟล์คือโปรแกรมอะไร โดยใช้คำสั่งดังนี้
set | grep EDITOR
จะได้ชื่อโปรแกรมออกมา ซึ่งหากไม่มีชื่อโปรแกรม แสดงว่าโปรแกรมแก้ไขไฟล์เป็นโปรแกรม vi
รูปแบบของเวลาทำงาน
การกำหนดเวลาทำงาน สามารถระบุเวลา, วันที่ และวันในสัปดาห์ ที่จะให้โปรแกรมทำงานได้ เช่น ถ้าต้องการให้โปรแกรมทำงานทุกเที่ยงคืน ก็สามารถระบุได้ดังนี้
0 0 * * *
โดยที่
- เลข 0 ตัวแรก คือนาที (0 - 59)
- เลข 0 ตัวที่สอง คือชั่วโมง (0 - 23)
- ดอกจันตัวแรก คือวันที่ (1 - 31)
- ดอกจันตัวที่สอง คือเดือน (1 - 12)
- ดอกจันตัวที่สาม คือวันในสัปดาห์ (0-อาทิตย์, 1-จันทร์, ..., 6-เสาร์)
ดังนั้นการกำหนดค่าข้างต้นจึงมีความหมายว่า ให้โปรแกรมทำงาน ณ เวลา 00:00 น. ของวันที่เท่าไหร่ก็ได้ เดือนอะไรก็ได้ และวันอะไรก็ได้ หรือให้ทำงานทุกเที่ยงคืนนั่นเอง ตัวอย่างการกำหนดค่า
การกำหนดค่า | ความหมาย |
---|---|
0 2 * * * | ทำงานเวลา 02:00 น. ทุกวัน |
0 23 * * 0 | ทำงานเวลา 23:00 น. ทุกวันอาทิตย์ |
30 7 1 * * | ทำงานเวลา 07:30 น. ทุกวันที่ 1 ของเดือน |
การกำหนดเวลาทำงาน
การกำหนดเวลาทำงานจะใช้โปรแกรม crontab โดยมีวิธีใช้ดังนี้
การดูกำหนดเวลาทำงาน ใช้คำสั่ง (พารามิเตอร์คือ เครื่องหมายลบ ตัวอักษรแอลเล็ก)
crontab -l
โปรแกรมจะแสดงกำหนดเวลาทำงาน ดังนี้
# If you don't want the output of a cron job mailed to you, you have to direct # any output to /dev/null. We'll do this here since these jobs should run # properly on a newly installed system, but if they don't the average newbie # might get quite perplexed about getting strange mail every 5 minutes. :^) # # Run the hourly, daily, weekly, and monthly cron jobs. # Jobs that need different timing may be entered into the crontab as before, # but most really don't need greater granularity than this. If the exact # times of the hourly, daily, weekly, and monthly cron jobs do not suit your # needs, feel free to adjust them. # # Run hourly cron jobs at 47 minutes after the hour: 47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null # # Run daily cron jobs at 4:40 every day: 40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null # # Run weekly cron jobs at 4:30 on the first day of the week: 30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null # # Run monthly cron jobs at 4:20 on the first day of the month: 20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
ซึ่งเป็นกำหนดทำงานของโปรแกรมที่ Slackware ติดตั้งมาให้ตั้งแต่ต้น
การแก้ไขกำหนดเวลาทำงาน ใช้คำสั่ง (พารามิเตอร์คือ เครื่องหมายลบ ตัวอักษรอีเล็ก)
crontab -e
โปรแกรมจะเรียกโปรแกรมแก้ไขไฟล์ตามที่กำหนดไว้ เพื่อให้แก้ไขกำหนดเวลาทำงาน
ในที่นี้ ให้เพิ่มบรรทัดนี้ที่ท้ายไฟล์
0 2 * * * /www/diskserv/app/script/format_extra_once.php
เพื่อให้ระบบเรียกใช้โปรแกรมนี้เวลา 02:00 น. ของทุกวัน (สามารถแก้ไขกำหนดเวลาได้ตามต้องการ ตามรูปแบบข้างต้น)
เมื่อแก้ไขกำหนดเวลาเรียบร้อย ให้บันทึกไฟล์ และออกจากโปรแกรมแก้ไขไฟล์ จากนั้นให้สั่ง crontab -l อีกครั้ง เพื่อตรวจสอบว่าได้เพิ่มกำหนดเวลาเข้าไปถูกต้องแล้ว