ฟอร์แมตไดรฟ์เสริม

จาก NakhonNet
ข้ามไปยัง: นำทาง, ค้นหา

การฟอร์แมตไดรฟ์เสริม ใช้สำหรับฟอร์แมตไดรฟ์เสริม (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 อีกครั้ง เพื่อตรวจสอบว่าได้เพิ่มกำหนดเวลาเข้าไปถูกต้องแล้ว


View/Edit Diskless Server
ภาพรวม หลักการทำงาน - Hardware - Software
ติดตั้ง Server ติดตั้ง Slackware64 13.37 บูต - แบ่งพาร์ทิชั่น - เตรียมฮาร์ดดิสก์ - ติดตั้งแพ็กเกจ - ติดตั้ง Lilo - กำหนดค่าเน็ตเวิร์ก - กำหนดรหัสผ่าน - Slackware64 14.0
ปรับแต่ง Slackware Linux การใช้งานเบื้องต้น - คอมไพล์ Kernel - สร้างไดเรกทอรี - ปรับแต่ง Filesystem - ปรับแต่งแพ็กเกจ - เพิ่มการเรียก dhcpd
ปรับแต่ง Network กำหนดชื่อ Device - ทำ Network Bonding - กำหนดค่า Network
RAID สร้างพาร์ทิชั่น - สร้าง RAID - ไม่ใช้ RAID
กำหนดค่า Service NTPD - NAMED - TFTPD
โปรแกรม iSCSI Enterprise Target - iPXE
โปรแกรมจัดการระบบ Apache - MySQL - PhpMyAdmin - CakePHP - Disk Serve Manager (อัปเกรด)
ติดตั้ง Client ติดตั้ง Windows XP - ติดตั้ง iSCSI - ปรับแต่ง Windows XP - คัดลอกดิสก์ไปยังเซิร์ฟเวอร์ - Windows 7 64-bit
การใช้งาน ภาพรวม นิยาม - ไฟล์ Config และ Script
การกำหนดค่า Config - Cluster - Alternative - Computer - ตัวอย่าง
การใช้งาน หน้าจอหลัก - Mode การใช้งาน - ปรับปรุง Image - สำรอง Image - ขยายขนาด Image - ใช้หลาย Server
โปรแกรมเสริม ปรับแต่งเครื่องลูกขณะบูต - ฟอร์แมตไดรฟ์เสริม
การแก้ไขปัญหา FAQ - ไฟล์กำหนดค่า - ไฟล์บันทึกการทำงาน - Secure Erase