Thaiadmin

จะบันทึก command ที่พิมพ์ และ ผลลัพธ์ที่ได้ ใน linux อย่างไรครับ

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ NokTualek

  • *****
  • 2,553
  • 3
  • เพศ: ชาย
ไม่ทราบมีคำสั่งอะไรที่บันทึก
- ทุกๆ คำสั่งที่พิมพ์ใน linux
- ทุก ๆ ผลลัพธ์ที่ออกมาจากคำสั่ง

เพื่อเก็บไว้ใช้ในการอ้างอิงครับ
ปล
- ต้องการเก็บผลลัพธ์ input / output บนหน้าจอ นะครับ

ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 25 มีนาคม 2015, 17:23:32 โดย NokTualek »
ไม่มีเป้าหมาย บางทีเราก็ไม่เริ่มต้น ^_^
"ชีวิตดีขึ้นได้ ด้วย วิธีคิดและวิธีพูดที่ดี"

ออฟไลน์ B.Pharapat

  • *****
  • 4,820
  • 15
  • เพศ: ชาย
ไม่ทราบมีคำสั่งอะไรที่บันทึก
- ทุกๆ คำสั่งที่พิมพ์ใน linux
- ทุก ๆ ผลลัพธ์ที่ออกมาจากคำสั่ง

เพื่อเก็บไว้ใช้ในการอ้างอิงครับ
ปล
- ต้องการเก็บผลลัพธ์ input / output บนหน้าจอ นะครับ

ขอบคุณครับ

คำสั่ง "history" แต่อาจจะ พิมพ์ ที่หน้าจอ console เครื่องเลย นะครับ มันจะเก็บ ประวัติคำสั่งให้

ออฟไลน์ NokTualek

  • *****
  • 2,553
  • 3
  • เพศ: ชาย
History จะบันทึกเพียงแค่คำสั่งที่พิมพ์ไปนะครับ แต่ไมได้บันทึกผลลัพธ์ที่ได้

ดังนั้นขออธิบายจุดประสงค์หลักก่อนนะครับ
- ปกติเวลาใช้งานจะใช้ putty ก็จะสามารถ copy ข้อความต่าง ๆ ที่เกิดขึ้นบนหน้าจอมาโพสได้ จะได้ทั้ง คำสั่งที่พิมพ์และผลลัพธ์ของคำสั่ง
- บังเอิญว่าตอนนี้ผม ssh ไปยัง server ไมไ่ด้ ต้องนั่งพิมพ์ที่หน้า control ดังนั้น หากจะเอา คำสั่งโดยการ copy มาแปะบนเว็บ มันทำได้ยาก ผมต้องทำ redirec 2>log.txt บ้าง >log.txt บ้าง ทำให้ไม่สะดวก เพราะต้องพิมพ์ พ่วงท้ายทุกครั้ง บางครั้งก็ไม่ออกมาเก็บในไฟล์เพราะ ไม่รู้ว่าเป็น type error หรือ standard output
- เลยอยากได้คำสั่งที่พิมพ์อะไร ผลลัพธ์ออกมาเป็นไฟล์ในทีเดียว แล้วผมก็ copy ไฟล์นั้นมาโพสในเว็บนี้ได้นะครับ ว่าผลลัพธ์เป็นอย่างไร  เช่น คำสั่ง
/usr/sbin/ssd -ddd   ผลลัพธ์ออกมาเยอะมาก จะบันทึกทุกๆ อย่างที่เคยพิมพ์มาแล้วผลลัพธ์ที่ได้จากการพิมพ์คำสั่งมาด้วยนะครับ

ขอบคุณนะครับ
ไม่มีเป้าหมาย บางทีเราก็ไม่เริ่มต้น ^_^
"ชีวิตดีขึ้นได้ ด้วย วิธีคิดและวิธีพูดที่ดี"

ออฟไลน์ Keigo

  • *****
  • 1,845
  • 29
  • เพศ: ชาย
  • TH@min Membership
ส่วนใหญ่ ผมใช้ "tee" เก็บ command by command แต่ถ้าทั้ง terminal output เยอะๆ ผมจะใช้ "script" ครับ by default จะได้ file ที่ชื่อว่า "typescript" ใน directory ที่เราสั่งใช้งาน script จะออกกด ctrl + D หรือ exit
<b>When we wake up in the morning, we have two simple choices. Go back to sleep and dream, or wake up and chase those dreams.</b>

ออฟไลน์ B.Pharapat

  • *****
  • 4,820
  • 15
  • เพศ: ชาย
History จะบันทึกเพียงแค่คำสั่งที่พิมพ์ไปนะครับ แต่ไมได้บันทึกผลลัพธ์ที่ได้

ดังนั้นขออธิบายจุดประสงค์หลักก่อนนะครับ
- ปกติเวลาใช้งานจะใช้ putty ก็จะสามารถ copy ข้อความต่าง ๆ ที่เกิดขึ้นบนหน้าจอมาโพสได้ จะได้ทั้ง คำสั่งที่พิมพ์และผลลัพธ์ของคำสั่ง
- บังเอิญว่าตอนนี้ผม ssh ไปยัง server ไมไ่ด้ ต้องนั่งพิมพ์ที่หน้า control ดังนั้น หากจะเอา คำสั่งโดยการ copy มาแปะบนเว็บ มันทำได้ยาก ผมต้องทำ redirec 2>log.txt บ้าง >log.txt บ้าง ทำให้ไม่สะดวก เพราะต้องพิมพ์ พ่วงท้ายทุกครั้ง บางครั้งก็ไม่ออกมาเก็บในไฟล์เพราะ ไม่รู้ว่าเป็น type error หรือ standard output
- เลยอยากได้คำสั่งที่พิมพ์อะไร ผลลัพธ์ออกมาเป็นไฟล์ในทีเดียว แล้วผมก็ copy ไฟล์นั้นมาโพสในเว็บนี้ได้นะครับ ว่าผลลัพธ์เป็นอย่างไร  เช่น คำสั่ง
/usr/sbin/ssd -ddd   ผลลัพธ์ออกมาเยอะมาก จะบันทึกทุกๆ อย่างที่เคยพิมพ์มาแล้วผลลัพธ์ที่ได้จากการพิมพ์คำสั่งมาด้วยนะครับ

ขอบคุณนะครับ

อ่อ ผม เข้าใจ ความต้องการ ผิดเองครับ โทษที

ออฟไลน์ g¦llÑáldö

  • *****
  • 1,522
  • 7
  • เพศ: ชาย
  • --> Secure your server <---
เคยใช้วิธีลูกทุ่งครับ คือใช้มือถืออัด VDO เอาไว้ ได้เสียงและ feeling ตอนทำงานมาด้วยครับ  :P
Hacker is friend, User is teacher
===================================
รับสอน FreeBSD, Linux, Window และการดูแลระบบ
http://www.thaiadmin.org/board/index.php?topic=516.0

หนังสือ Linux Server Administrator + Security
http://www.thaiadmin.org/board/index.php?topic=16756893.0

ออฟไลน์ stwatchai

  • *****
  • 3,917
  • 4
  • เพศ: ชาย
  • System & Network Administrator
linux บางตัว จะมีคำสั่ง screen ครับ

ออฟไลน์ Keigo

  • *****
  • 1,845
  • 29
  • เพศ: ชาย
  • TH@min Membership
screen สามารถเก็บ log ของ shell นั้นได้ด้วย ctrl-a H ครับ (screenlog.n "off" by default)  O0

จริงๆ screen ไว้ใช้สำหรับสร้าง multiple shells บน a single session สำหรับ run long running commands โดยที่ไม่ต้องกังวลว่า ถ้า ssh connection ของเครื่องเรามีปัญหาถูก disconnected คำสังที่เราสั่งไว้บน screen ก็ยังทำงานได้อยู่ ไม่ใช่หรอครับ? สามารถ de/reattach หรือ lock ไว้ได้ตามแต่เรา ลงได้ครับทุกๆ distro, yum/apt-get/zypper/emerge install screen
<b>When we wake up in the morning, we have two simple choices. Go back to sleep and dream, or wake up and chase those dreams.</b>

ออฟไลน์ NokTualek

  • *****
  • 2,553
  • 3
  • เพศ: ชาย
อ้างถึง
linux บางตัว จะมีคำสั่ง screen ครับ
1 ผมเคยใช้ screen ตอน download file ใหญ่ ๆ ด้วยการใช้ putty แล้วใช้ screen หลังจากนั้นใช้ wget ให้ download ไฟล์ทิ้งไว้ แล้วปิด notebook ครับ
2 เพื่อคิดว่าครบเวลาที่น่าจะ download เสร็จก็เปิด putty มาใหม่ก็เข้า screen เข้า session ที่ใช้ wget ต่อได้เลย หากเป็นระบบเดิมมันก็จะหลุดไปตั้งแต่ ปิด putty
3 แต่ยังไม่เจอคำสั่งที่ บันทึก คำสั่งและผลลัพธ์ ต่าง ๆ ที่ได้เก็บเป็นไฟล์เลยครับ ไม่ทราบว่าหากทำได้ต้องทำไงครับ

ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 26 มีนาคม 2015, 00:39:05 โดย NokTualek »
ไม่มีเป้าหมาย บางทีเราก็ไม่เริ่มต้น ^_^
"ชีวิตดีขึ้นได้ ด้วย วิธีคิดและวิธีพูดที่ดี"

ออฟไลน์ NokTualek

  • *****
  • 2,553
  • 3
  • เพศ: ชาย
ส่วนใหญ่ ผมใช้ "tee" เก็บ command by command แต่ถ้าทั้ง terminal output เยอะๆ ผมจะใช้ "script" ครับ by default จะได้ file ที่ชื่อว่า "typescript" ใน directory ที่เราสั่งใช้งาน script จะออกกด ctrl + D หรือ exit
พอจะมีตัวอย่าง ให้สักนิดป่าวครับ ผมไม่เคยใช้คำสั่ง tee มาก่อน

ขอบคุณครับ
ไม่มีเป้าหมาย บางทีเราก็ไม่เริ่มต้น ^_^
"ชีวิตดีขึ้นได้ ด้วย วิธีคิดและวิธีพูดที่ดี"

ออฟไลน์ Keigo

  • *****
  • 1,845
  • 29
  • เพศ: ชาย
  • TH@min Membership
tee ก็คล้ายกับ redirection > นั่นแหละครับ แต่มันจะแสดงผลบน terminal ด้วย

ปกติก็ "command | tee filename.txt" แต่มันจะเก็บแต่ stdout เข้า filename.txt ถ้าอยากได้ stderr ด้วย ก็ต้อง redirection ช่วย "command 2>&1 | tee filename.txt" 2=stderr, 1=stdout ... (0=stdin)
<b>When we wake up in the morning, we have two simple choices. Go back to sleep and dream, or wake up and chase those dreams.</b>

ออฟไลน์ NokTualek

  • *****
  • 2,553
  • 3
  • เพศ: ชาย
tee ก็คล้ายกับ redirection > นั่นแหละครับ แต่มันจะแสดงผลบน terminal ด้วย
ปกติก็ "command | tee filename.txt" แต่มันจะเก็บแต่ stdout เข้า filename.txt ถ้าอยากได้ stderr ด้วย ก็ต้อง redirection ช่วย "command 2>&1 | tee filename.txt" 2=stderr, 1=stdout ... (0=stdin)

ขอบคุณครับ แล้วไม่ทราบว่าพอมีเทคนิคไหน ที่ไม่ต้องใช้ tee  หรือพวก redirection ทุๆ คำสั่งบ้างครับ  ขออธิบายดังนี้นะครับ
1 หากใช้ tee หรือ redirection ต้องพิมพ์ ทุก ๆ คำสั่งที่ต้องการใช้งานเลย
2 จะใช้งานลำบากนิดนะครับ
3 เคยเห็นของ putty ที่เก็บเป็นไฟล์ได้เลยว่ามีการ ป้อนและแสดงผลอะไรบ้าง (จำวิธีไม่ได้ว่าทำไง) หากทำงานใน terminal หน้า control แบบนี้สามารถทำได้หรือไม่ครับ


ขอบคุณครับ
ไม่มีเป้าหมาย บางทีเราก็ไม่เริ่มต้น ^_^
"ชีวิตดีขึ้นได้ ด้วย วิธีคิดและวิธีพูดที่ดี"

ออฟไลน์ Keigo

  • *****
  • 1,845
  • 29
  • เพศ: ชาย
  • TH@min Membership
script ไงครับ พิมพ์ script แล้วก็ใส่เลย จะทำอะไรก็ทำบนหน้า terminal นั้น พอเสร็จสั่ง ctrl+d หรือ exit เราก็จะได้ file ชื่อ typescript
<b>When we wake up in the morning, we have two simple choices. Go back to sleep and dream, or wake up and chase those dreams.</b>

ออฟไลน์ NokTualek

  • *****
  • 2,553
  • 3
  • เพศ: ชาย
screen สามารถเก็บ log ของ shell นั้นได้ด้วย ctrl-a H ครับ (screenlog.n "off" by default)  O0

จริงๆ screen ไว้ใช้สำหรับสร้าง multiple shells บน a single session สำหรับ run long running commands โดยที่ไม่ต้องกังวลว่า ถ้า ssh connection ของเครื่องเรามีปัญหาถูก disconnected คำสังที่เราสั่งไว้บน screen ก็ยังทำงานได้อยู่ ไม่ใช่หรอครับ? สามารถ de/reattach หรือ lock ไว้ได้ตามแต่เรา ลงได้ครับทุกๆ distro, yum/apt-get/zypper/emerge install screen

ผมลองแล้ว จะได้ไฟล์ชื่อ hardcopy.0   แต่เมื่อเข้าไปดูใน hardcopy.0 ไม่เจอคำสั่งหรือ out put ที่ใช้ใน screen หลังกด ctrl-a + H เลยครับ

ส่วนคำสั่ง
# script ใช้ได้ผลดีมาก ๆ เลยครับ ชอบคำสั่งนี้มากเลย เก็บ log หน้าจอที่เราพิมพ์ไว้ได้ง่ายดี
ไม่มีเป้าหมาย บางทีเราก็ไม่เริ่มต้น ^_^
"ชีวิตดีขึ้นได้ ด้วย วิธีคิดและวิธีพูดที่ดี"

ออฟไลน์ Keigo

  • *****
  • 1,845
  • 29
  • เพศ: ชาย
  • TH@min Membership
ผมอธิบายไม่ดีเองแหละ

* บน screen ถ้าเราจะเริ่ม capture text ตอนไหน ให้กด ctrl-a แล้ว (capital) H นะครับ ไม่ใช่ (small) h จะเป็นอีก option นึง
* พอเสร็จแล้วก็ให้ ctrl-a H อีกทีนึง แล้วจะได้ file:screenlog.n มาครับผม
<b>When we wake up in the morning, we have two simple choices. Go back to sleep and dream, or wake up and chase those dreams.</b>

ออฟไลน์ NokTualek

  • *****
  • 2,553
  • 3
  • เพศ: ชาย
Commandที่ต้องการ >> /Pathที่ต้องการ/ชื่อไฟล์ที่ต้องการ.txt 2>&1

ขอบคุณครับ
ไม่มีเป้าหมาย บางทีเราก็ไม่เริ่มต้น ^_^
"ชีวิตดีขึ้นได้ ด้วย วิธีคิดและวิธีพูดที่ดี"