bash

warning: Creating default object from empty value in /sys1/sysb/var/www/thaitux.info/drupal/modules/taxonomy/taxonomy.pages.inc on line 33.

bash: สคริปต์คัดลอกผู้ใช้

สคริปต์คัดลอกผู้ใช้จากระบบปัจจุบันไปยังไดเรคทอรี่ที่ติดตั้งลินุกซ์อีกตัวหนึ่ง
มีประโยชน์สำหรับติดตั้งลินุกซ์หลายตัว และต้องการให้ผู้ใช้เหมือนกับระบบปัจจุบัน ตัวอย่างการใช้งานเช่น

  • ติดตั้งลินุกซ์ผ่าน debootstrap
  • ติดตั้งลินุกซ์โดยการเมานต์ live cd แล้วคัดลอก squashfs มาติดตั้งโดยตรง

ข้อกำหนดคือ

  • ต้องใช้สิทธิ์ root ในการรัน
  • ต้องเป็นลินุกซ์ที่มีการเก็บไฟล์ผู้ใช้แบบมาตรฐาน คือเก็บที่ไฟล์ /etc/passwd, /etc/group และ /etc/shadow

สคริปต์มีดังนี้

bash: สคริปต์แก้ Boot record ของ NTFS

update 2556-12-03

ลองใช้สคริปต์กับพาร์ติชั่นที่ขนาดไม่เท่ากันแล้วปรากฎว่าใช้ไม่ได้ เพราะ NTFS เก็บข้อมูลหลายอย่างมากกว่าแค่จุดเริ่มต้นและขนาด (ดูที่ NTFS Partition Boot Sector)

วิธีที่ได้ผลกว่าคือ ฟอร์แมตไดร์ฟไว้ก่อน -> เก็บ boot sector ไว้ 72 ไบต์ -> ทำ ntfsclone -> เอา boot recort ที่เก็บไว้มาเขียนทับ

ตัวอย่างเช่น จะคัดลอก ไดร์ฟ /dev/sda1 ไปยัง /dev/sdb1 ขั้นตอนจะเป็นดังนี้

$ sudo mkfs.ntfs -f /dev/sdb1
$ sudo dd if=/dev/sdb1 of=sdb1.img bs=72 count=1
$ sudo ntfsclone -O /dev/sdb1 /dev/sda1
$ sudo dd if=sdb1.img of=/dev/sdb1

*** สคริปต์ด้านล่างนี้ ล้าสมัยแล้ว ***

แก้ปัญหาเวลาใช้ ntfsclone ในการ restore พาร์ติชั่น NTFS มาลงในฮาร์ดดิสก์ลูกใหม่ ซึ่งจุดเริ่มต้นและขนาดอาจไม่เท่าของเดิม

วิธีการคือใช้ข้อมูลจากตาราง Master Boot Record ปัจจุบัน มาเขียนทับ boot record ของพาร์ติชั่น NTFS ที่ต้องการ โดยใช้เชลล์สคริปต์

$ vi ntfs_fix_boot_sector.sh

bash: สคริปต์บล๊อกผู้ใช้ Drupal แบบอัตโนมัติ

ปรับปรุงสคริปต์ให้สามารถบล๊อกโดยอัตโนมัติ

$ vi drupal_auto_blockuser.sh

bash: สคริปต์บล๊อกผู้ใช้ Drupal

ทำสคริปต์บล๊อกผู้ใช้ Drupal จากบรรทัดคำสั่ง (bash)

$ vi drupal_blockuser.sh

bash script: แบ่งไฟล์สื่อออกเป็นหลาย ๆ ส่วน

เห็นคำถามเกี่ยวกับการแบ่งไฟล์สื่อออกเป็นหลายส่วนที่ ubuntuclub.com
ด้วยต้องการคลายเครียด จึงวางแผนลงมือเขียนสคริปต์ โดยคิดให้สคริปต์มีการทำงานดังต่อไปนี้

  1. หาความยาวสื่อ ด้วยโปรแกรม ffmpeg ด้วยคำสั่ง
    ffmpeg -i "$INFILE" 2>&1 | grep "Duration" | cut -d ' ' -f 4 | sed s/,//
  2. หาความยาวแต่ละส่วน (ความยาวสื่อ ÷ จำนวนส่วนที่จะแยก)
  3. ใช้ mencoder มาตัดส่วน -ss คือ seek ไปยังตำแหน่ง, -endpos คือให้ประมวลผลเท่าใด (เป็นขนาดก็ได้ เป็นจำนวนเฟรมก็ได้ เป็นค่าเวลาก็ได้)

เสร็จแล้วเขียนออกมาหยาบ ๆ และทดสอบไปเล็กน้อยว่าใช้งานได้จริงแล้วเลยเอามาบันทึกไว้กันลืมเสียหน่อย

โดยผลลัพธ์ที่ได้ออกมาเป็นสคริปต์ sep_media.sh เป็นดังนี้:

Syndicate content
 

Thai Search

Google Search

Custom Search

Theme

Who's online

There are currently 0 users and 3 guests online.