คำสั่ง rsync และ sftp

บางทีการ ftp ก็เป็นอะไรที่ไม่สะดวกเลย แต่ถ้าเราต้องการ ftp จาก linux ไป linux ด้วยกัน (หรือ mac os x ก็ได้)​ คำสั่งที่สะดวกและใช้งานได้เลย โดยไม่ต้องลงโปรแกรมก่อนคือ rsync

เช่น ต้องการ copy โฟลเดอร์ /home/pi จากเครื่องที่ชื่อว่า mappi มายังเครื่องที่คุณกำลังใช้อยู่ ก็ให้สั่งว่า

rsync -avl username@mappi:/home/pi /home

แค่นี้ก็เสร็จแล้ว -a คือ ให้ recursive ด้วย -v คือ verbose ส่วน -l คือ ให้ copy softlink มาด้วย

อีกคำสั่งที่ทำงานคล้าย rsync คือ scp แต่ว่า permission ต่างๆ จะไม่ถูก copy มาด้วย เพราะฉะนั้นใช้ rsync น่าจะดีกว่า

อีกวิธีที่ง่ายไม่แพ้กันคือ sftp ซึ่งเป็นคำสั่งที่เหมือน ftp เลย แต่ว่าทำงานผ่าน ssh ทำให้ไม่ต้องลง ftp server เลย แถมยัง secured อีกต่างหาก การใช้งานก็เหมือน ssh เช่น

sftp pi@192.168.1.101

เมื่อติดต่อได้แล้ว ก็ใช้คำสั่งแบบ ftp ได้เลย

รู้จัก crontab ให้มากขึ้น

คงพอทราบกันอยู่แล้วว่า crontab มีไว้ตั้งเวลาเพื่อรันโปรแกรมบน Linux แต่มารู้จัก crontab ในบางแง่มุมให้มากขึ้นกันสักหน่อย

ที่จริงแล้ว user ทุกคนในเครื่องจะมี crontab เป็นของตัวเองแยกกันหมด การแก้ไข crontab สามารถทำได้ด้วยคำสั่ง crontab -e ซึ่งจะแก้ได้เฉพาะ crontab ของตัวเองเท่านั้น  

root เป็น user เดียวที่ไม่มี crontab เป็นของตัวเอง ถ้าต้องการตั้งโปรแกรมสำหรับทั้งเครื่อง (รันได้แม้ว่าจะไม่มีใครล็อกอินอยู่เฉย) ให้เป็น root แล้ว เข้าไปแก้ไฟล์ /etc/crontab ได้เลย โดย syntax ของไฟล์นี้จะต่างจาก crontab ของ user ธรรมดาตรงที่ต้องระบุด้วยว่า user ที่จะใช้รันโปรแกรมนั้นๆ เป็นใคร ไว้ทุกๆ บรรทัด 

crontab จุกจิกเรื่อง user environment มาก ถ้าหากไม่บอก path หรือ environment ที่จำเป็นให้มันอย่างครบถ้วนถูกต้อง มันจะไม่ทำงานเลย โดยที่ไม่บอกอะไรเราด้วย ทางที่ดีควรใส่ path เต็มๆ ให้กับทุกคำสั่ง และทุกไฟล์ที่ใส่ไว้ใน crontab ครับ 

ใช้งาน Nmap

Nmap เป็นเครื่องมือง่ายๆ สำหรับการเฝ้าระวังระบบเครือข่าย เครื่องที่เราจะลง Nmap คือเครื่องที่เราใช้เป็นตัวมอนิเตอร์เน็ตเวิร์ก

บน Ubuntu สามารถติดตั้ง Nmap ได้ง่ายๆ ด้วยคำสั่ง

sudo apt-get install nmap

ถ้าอยากดูว่า ในวงเน็ตเวิร์กเดียวกับเรา มีเครื่องอะไรอยู่บ้าง สมมติว่า วงเน็ตของเราใช้ DHCP แจก IP Address ที่ขึ้นต้นด้วย 192.168.1.x ก็ให้ใช้คำสั่ง 

nmap -sP 192.168.1.*

เราอยากตรวจสอบเครื่องไหน เช่น 192.168.1.31 ก็ใช้คำสั่ง

nmap 192.168.1.31

ผลลัพธ์จะบอกว่าเครื่องนี้มีเปิด port อะไรใช้งานอยู่บ้าง ถ้าต้องการทราบ OS ของเครื่องนั้นด้วยให้ใช้คำสั่ง

nmap -o 192.168.1.31

ต้องการทราบว่าเครื่องนั้นมี firewall หรือไม่

nmap -s 192.168.1.31

ต้องการจับข้อมูลที่เข้าออกเครื่องนั้นแบบ real-time

nmap –packet-trace 192.168.1.31