Tags:
Forums: 

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

ทางแก้คือการส่งไฟล์ผ่าน terminal ตรงๆ แต่การวางไฟล์ binary ผ่าน terminal นั้นเราต้องเข้ารหัสให้สามารถส่งข้อมูลผ่าน terminal ได้เสียก่อน

การเข้ารหัสข้อมูล binary ให้หลายเป็น text เพื่อให้ส่งข้อมูลผ่านการ copy/paste ทางหน้าจอได้ เรียกว่าการเข้ารหัสแบบ Uuencoding แม้ว่าจะได้รับความนิยมอย่างสูง แต่โปรแกรม uuencode และ uudecode ก็มักจะไม่ได้ติดตั้งมาเป็นมาตรฐาน

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

python -c "import uu; uu.encode('[ชื่อไฟล์ที่ต้องการเข้ารหัส]','[ชื่อไฟล์ที่เข้ารหัสแล้ว]')"

จากนั้นก็นำข้อมูลในไฟล์ copy ผ่าน terminal ไปยังเครื่องปลายทาง ที่เครื่องปลายทาง แล้วเปิด editor เพื่อเซฟไฟล์

การแปลงไฟล์กลับเป็นไบนารีก็คล้ายกัน เพียงแต่ไม่จำเป็นต้องกำหนดชื่อไฟล์ปลายทางเพราะในไฟล์ uu นั้นมีชื่อไฟล์ที่เข้ารหัสมาแล้ว

python -c "import uu; uu.decode('[ชื่อไฟล์ที่เข้ารหัสแล้ว]')"

Get latest news from Blognone