Script สำหรับ หาวันที่ของไฟล์ล่าสุดใน directory

Q: ถ้าจะเขียน คำสั่ง หรือ script บน linux เพื่อหา วันที่ของ file ล่าสุดใน folder ของ user จะเขียนยังไงดี มีไอเดียไหมครับ A: สมมติ folder ของ user คือ /home/user/Documents $ ls -t /home/user/Documents จะได้ไฟล์เรียงตามลำดับวันที่/เวลาของไฟล์ โดยไฟล์ล่าสุดจะโผล่มาเป็นไฟล์แรก ถ้าเราต้องการไฟล์ล่าสุดแค่ไฟล์เดียว ก็สามารถใช้คำสั่ง head -1 เพื่อตัดให้เหลือไฟล์เดียวได้ ก็จะได้คำสั่งเป็น $ ls -t /home/user/Documents | head -1 ทีนี้ จากชื่อไฟล์ที่ได้ ถ้าต้องการวันที่ เราก็สามารถใช้คำสั่ง date โดยใช้ option -r สำหรับให้มันแสดงวันที่ของไฟล์ใดๆ ตย. เช่น ต้องการรู้วันที่ ของไฟล์ /etc/passwd ก็ใช้คำสั่ง $ date -r /etc/passwd เอาสองอย่างนี้มาใช้งานร่วมกันได้ตามนี้ครับ $ date -r `ls -t /home/user/Documents | head -1` ทีนี้ ถ้าต้องการให้ format ของวันที่ออกมาตามที่เราต้องการ อย่างเช่น ให้ format เป็น yyyy-mm-dd HH:MM:SS ก็เพิ่ม option ให้กับคำสั่ง date ประมาณนี้ “+%Y-%m-%d %H:%M:%S” รวมกันทั้งหมดเป็น $ date -r `ls -t /home/user/Documents | head -1` “+%Y-%m-%d %H:%M:%S” Q: ถ้าจะลงลึกไปหลาย level ต้องทำอะไรเพิ่มครับ A: หมายถึงต้องการไฟล์ล่าสุด ไฟล์เดียว จากใน directory นั้นและ sub directory ย่อยทั้งหมดใช่ใหมครับ? Q: ใช่ครับ A: งั้น คงต้องพึ่งพาคำสั่ง find ครับ เพื่อที่ list เอาเฉพาะไฟล์ทั้งหมดออกมาก่อน เพราะคำสั่ง ls ธรรมดามันจะไล่ไปตาม directory ทีละ directory เริ่มจาก $ find /home/user/Documents มันจะ list ทุกอย่างทั้งไฟล์ และ ไดเรคตอรี่และในไดเรคตอรี่ย่อยออกมา เราต้องการเฉพาะไฟล์ ระบุ option -type f เราต้องการให้มันแสดงวันที่ของไฟล์ออกมาด้วย อันนี้ต้องพึ่งคำสั่ง ls โดยใช้ option ของ ls เป็น –full-time $ find /home/user/Documents -type f -exec ls –full-time {} \; โดย {} เป็นการระบุว่าให้ find ใช้คำสั่ง ls –full-time กับ output ของ find ส่วน \; เป็นตัวระบุว่า จบ option ของ คำสั่ง find แค่นี้ output ที่ได้ จะเป็นไฟล์ “ทั้งหมด” โดยที่ในแต่ละบรรทัดจะมี ข้อมูลอย่างอื่นของไฟล์นั้นออกมาด้วย เช่น permission, owner, group, size ซึ่งเราไม่สนใจ เราตัดเอาข้อมูลที่อยู่ข้างหน้าเหล่านั้นออกไปได้ โดยใช้คำสั่ง cut โดยในกรณีนี้ใช้ space ‘

Read More »

IEEE Explore Services and IPv6

หลายวันก่อน (2016-06-28) คุณวันชัย พบปัญหาการเข้าใช้งาน web ieeexplore.ieee.org ซึ่งปัญหาที่ว่าก็คือ ปกติแล้วการเข้าไปพยายามดาวน์โหลดไฟล์จากเว็บดังกล่าว ถ้าเข้าใช้งานจากเครือข่ายของ มหาวิทยาลัยสงขลานครินทร์เอง ผู้ให้บริการ (IEEE Explore) ก็จะสามารถตรวจสอบได้ว่า เข้ามาจากเครือข่ายของมหา’ลัย ซึ่งอนุญาตให้ผู้ใช้งานจากเครือข่ายของมหา’ลัย สามารถดาวน์โหลดไฟล์ได้ แต่ครั้งนั้น อาจารย์ของภาควิชาวิศวกรรมไฟฟ้า ไม่สามารถดาวน์โหลดได้ จากภายในเครือข่ายของภาคฯเอง และ ที่แปลกไปกว่านั้นก็คือ ถ้าเปลี่ยนไปใช้งานเครื่องคอมพิวเตอร์ซึ่งอยู่ในเครือข่ายของภาคฯเช่นเดียวกัน แต่ใช้ระบบปฏิบัติการ Windows XP กลับใช้งานได้ หลังจากผ่านการตรวจสอบ 2-3 ขั้นตอนก็ได้ข้อสรุปว่า ปัญหาที่เกิดขึ้นก็คือ จากเดิมทีที่เครือข่ายของมหา’ลัย ใช้งาน IPv4 ในการเข้าถึงเครือข่ายของ IEEE (สำหรับในกรณีนี้ก็คือ ieeexplore.ieee.org) ตอนนี้ เมื่อเครือข่ายของ มหาวิทยาลัยสงขลานครินทร์ พร้อมที่จะให้บริการ IPv6 เครื่องคอมพิวเตอร์ ซึ่งส่วนใหญ่พร้อมที่จะใช้ IPv6 อยู่แล้ว ก็จะเปลี่ยนไปใช้ IPv6 สำหรับการติดต่อกับเครือข่ายปลายทาง สิ่งเหล่านี้ควรจะเกิดขึ้นโดยอัตโนมัติ และผู้ใช้งานก็ควรที่จะใช้งานได้โดยไม่จำเป็นจะต้องรู้ว่าเครื่องคอมพิวเตอร์ที่ตนเองใช้งานอยู่ ติดต่อกับเครื่องปลายทางโดยใช้โปรโตคอลใด อย่างไรก็ตาม สำหรับกรณีนี้ บริการของ IEEExplore และ Academic Journals อีกจำนวนมากซึ่งมหาวิทยาลัยสงขลานครินทร์เป็นสมาชิกอยู่ (ซึ่งอาจจะเป็นสมาชิกโดยตรง หรือโดยอ้อมผ่านทาง UniNet/สกอ.) ไม่ได้เป็นบริการที่เปิดแบบ public ให้ใครๆก็สามารถเข้าถึงข้อมูลได้ทุกอย่าง ข้อมูลบางอย่าง เช่น ไฟล์ของบทความ จะดาวน์โหลดได้เฉพาะสมาชิกเท่านั้น ถ้าเป็นสมาชิกแบบบุคคล วิธีการที่ใช้ในการยืนยันตัวตน ก็คือการ login โดยใช้ username และ password แบบเดียวกับที่ใช้กับบริการบนเว็บอื่นๆทั่วไป แต่สำหรับสมาชิกแบบ “สถาบัน” แบบที่มาหวิทยาลัยสงขลานครินทร์เป็นอยู่ แทนที่จะต้องให้ นักศึกษาและบุคคลากร แต่ละคนจะต้องมีแอคเคาท์ เป็นของตัวเอง วิธีการที่ง่ายกว่าก็คือ ใช้หมายเลข IP เป็นตัวระบุ โดยสถาบันที่เป็นสมาชิก ก็จะต้องแจ้งไปทางผู้ให้บริการว่า หมายเลข IP ใด หรือ ช่วงใดบ้างที่เป็นของสถาบันนั้นๆ แน่นอนว่าก่อนหน้านี้ หมายเลข IP ที่มหาวิทยาลัยสงขลานครินทร์แจ้งไปจะมีเฉพาะ IPv4 และแน่นอนว่าก่อนหน้านี้ไม่มีใครแจ้งปัญหาว่าสามารถดาวน์โหลดไฟล์จาก IEEExplore ไม่ได้ … เพราะเครือข่ายส่วนใหญ่ใน มหา’ลัย ใช้งานได้เฉพาะ IPv4 [[ ซึ่ง … อาจจะทำให้ผมตั้งข้อสงสัยขึ้นมาได้ว่า แล้วหน่วยงานบางหน่วยซึ่งใช้งาน IPv6 มาได้นานก่อนหน้านี้ ไม่เคยมีใครมีปัญหาบ้างเลยหรือ หรือจะเป็นเพราะว่าสมาชิกหน่วยงานเหล่านั้นไม่เคยใช้ IEEExplore เลย … แต่เนื่องจากว่า มีคำโบราณกล่าวไว้ … อะไรบางอย่าง…เกี่ยวกับการขว้างงู…และอวัยวะอะไรบางอย่างที่เป็นส่วนเชื่อมต่อระหว่างหัวและลำตัว… ผมก็เลยไม่ได้ตั้งข้อสงสัยใดๆทั้งสิ้นเกี่ยวกับเรื่องดังกล่าว เพราะไม่อยากให้คอของผมมีรู … และผมก็ไม่ชอบงูด้วย! ย้ำ, ผมไม่ได้ตั้งข้อสงสัยใดๆทั้งสิ้นจริงๆ EDIT (2016-07-08): ข้อมูลจาก ที่นี่ ทำให้พอเชื่อได้ว่า IEEE เริ่มใช้งาน IPv6 เมื่อประมาณ 2016-06-06 นั่นคือประมาณ 1 เดือนที่แล้ว ดังนั้นปัญหาในการเข้าถึงบริการของ IEEE Explore จากเครือข่ายของ มหาวิทยาลัยสงขลานครินทร์ โดยใช้งาน IPv6 แล้วใช้งานไม่ได้ จึงไม่ได้นานมากอย่างที่ผมคิดตอนแรก ]] กลับมาที่เรื่องของการใช้งาน IEEExplore ต่อ ปัญหาที่เกิดขึ้นครั้งนี้ เทียบเคียงได้กับการที่ทาง มหาวิทยาลัยแจ้ง IP address ที่มีใช้งานอยู่ให้กับทางผู้ให้บริการไม่ครบ เมื่อเครื่องคอมพิวเตอร์เริ่มใช้งาน IPv6 ได้และพยายามใช้งาน IPv6 ในการติดต่อกับเครื่องที่ให้บริการปลายทาง เครื่องที่ให้บริการปลายทาง ตรวจสอบแล้วไม่พบว่า หมายเลข IP address นี้อยู่ในรายการของหมายเลข IP ที่อนุญาตให้เข้าถึงข้อมูลได้ ก็เลยปฏิเสธการเข้าถึงข้อมูล วิธีการแก้ปัญหา ก็คือแจ้งหมายเลข IPv6 address ที่มหา’ลัยใช้อยู่ไป เพื่อให้ทางผู้ให้บริการอนุญาตให้เครื่องคอมพิวเตอร์ซึ่งใช้หมายเลขเหล่านี้เข้าถึงข้อมูลได้ วันนี้ (2016-07-07) คุณสงกรานต์ และ หอสมุดคุณหญิงหลงประกาศผ่านกลุ่มของ facebook ว่าสามารถใช้งานบริการของ IEEE ได้แล้วทั้ง IPv4 และ IPv6 ซึ่งในแง่ของผู้ใช้งานทั่วๆไป ควรที่จะใช้งานได้

Read More »

มาใช้งาน letsencrypt กันเถอะ

สำหรับใครก็ตามที่มีความจำเป็นที่จะต้องดูแลเว็บเซิร์ฟเวอร์ในปัจจุบัน ก็ดูเหมือนว่าจะหลีกไม่พ้นที่จะต้องรู้เรื่องของการเซ็ตอัพให้เซิร์ฟเวอร์ที่ต้อดูแล สามารถใช้งานผ่านโปรโตคอล https ได้ นอกเหนือไปจากการใช้งานผ่านโปรโตคอล http ซึ่งเป็นโปรโตคอลมาตรฐานดั้งเดิม สำหรับการให้บริการเว็บเซิร์ฟเวอร์ เอาล่ะ ถ้าจะว่ากันตามตรงแล้ว งานที่ต้องเพิ่มขึ้นมาสำหรับการที่จะทำให้ เว็บเซิร์ฟเวอร์สามารถใช้ https ได้ ถ้าทำให้มันใช้ http ได้แล้ว โดยทั่วไปก็ไม่ได้ยุ่งยากมากขึ้นเท่าไหร่ ขึ้นอยู่กับระบบปฏิบัติการที่เลือกใช้ ขึ้นอยู่กับตัวเว็บเซิร์ฟเวอร์ที่เลือกใช้ ขึ้นอยู่กับเซอร์ติฟิเคท (certificate) ที่ใช้ด้วย แต่ว่ากันโดยทั่วไป ระบบที่มีผู้ใช้งานเยอะ ตัวติดตั้งซอฟต์แวร์ของระบบปฏิบัติการ ก็มักจะจัดเตรียมวิธีการตรงนี้ไว้ให้แล้ว เหลือแค่การเรียกใช้งานเพิ่มแค่ไม่กี่คำสั่ง ก็สามารถใช้งานได้เลย ขอยกตัวอย่างเลยก็แล้วกัน สำหรับระบบปฏิบัติการเดเบียนลินุกซ์ (Debian Linux) รุ่น เจสซี่ (jessie) และ ใช้งาน apache เวอร์ชัน 2 เป็นเว็บเซิร์ฟเวอร์ วิธีการติดตั้งตัวเว็บเซิร์ฟเวอร์ก็คือ $ sudo apt-get install apache2 เพียงเท่านี้ เราก็สามารถใช้งานเว็บเซิร์ฟเวอร์ สำหรับให้บริการแบบสแตติกไฟล์ และสามารถใช้สคริปต์แบบ CGI ได้แล้ว แล้วถ้าต้องการให้มันรองรับแบบไดนามิก โดยใช้ภาษา php ได้ด้วยล่ะ? ก็ไม่ได้ยากอะไร ก็เพียงเพิ่มโมดูลของ php เข้าไป โดยใช้คำสั่ง $ sudo apt-get install libapache2-mod-php5 ตัวโปรแกรมสำหรับติดตั้ง (apt-get) ก็จะตรวจสอบ แพกเกจที่จำเป็นต้องใช้และยังไม่ได้ติิดตั้งเอาไว้ เช่น php5 แล้วก็ติดตั้งแพกเกจเหล่านั้นให้ด้วยเลยโดยอัตโนมัติ หลังจากนั้นเราก็สามารถสร้าง index.php ในไดเรคตอรี่ /var/www/html/ แล้วก็เขียนโปรแกรมภาษา php ให้บริการบนเว็บได้เลย ทีนี้ถ้าต้องการให้บริการเว็บ โดยใช้ https โปรโตคอลล่ะ เพื่อให้มีการเข้ารหัสข้อมูลที่มีการรับส่งระหว่าง ตัวเว็บเบราเซอร์ และ เว็บเซิร์ฟเวอร์ อันนี้ ไม่จำเป็นจะต้องติดตั้งโมดูลเพิ่มเติม เพราะตัว apache ติดตั้งให้โดยปริยายตั้งแต่แรกแล้ว แต่ ไม่ได้เปิดให้ใช้งานโดยอัตโนมัติ ผู้ดูแลระบบจะต้องสั่งเพิ่มว่า ให้เปิดบริการแบบ https ด้วย โดยใช้คำสั่งดังนี้ $ sudo a2enmod ssl $ sudo a2ensite default-ssl และสั่ง restart ตัวเว็บเซิร์ฟเวอร์โดยใช้คำสั่ง $ sudo systemctl restart apache2 เท่านี้ ก็จะสามารถใช้งาน https โปรโตคอลเพิ่มเติมขึ้นมาจากเดิม ที่ใช้งานได้เฉพาะ http โปรโตคอล แต่ … มันไม่ได้จบง่ายๆแค่นั้นน่ะสิ ถึงแม้ว่าการให้บริการจะโดยใช้ https โปรโตคอลจะมีการเข้ารหัสข้อมูลที่มีการรับส่งระหว่างตัวเบราเซอร์กับตัวเซิร์ฟเวอร์ แต่ เซอร์ติฟิเคท (certificate) สำหรับกุญแจที่ใช้ในการเข้ารหัสข้อมูลนั้น จะเป็นแบบที่เรียกว่า self-signed certificate ซึ่งตัวเบราเซอร์โดยทั่วไปจะ ไม่เชื่อถือ (un trusted) ว่าเป็นเซอร์ติฟิเคท ที่ออกให้กับเว็บไซท์ ที่ระบุว่าเป็นโดเมนนั้นๆจริง ในการใช้งานเว็บไซท์ที่ตัวกุญแจเข้ารหัสใช้ self-signed certificate ตัวเบราเซอร์ก็จะ “เตือน”, และสร้างความยุ่งยากในการใช้งานให้กับ ผู้ใช้ที่ต้องการเข้าใช้งานเว็บไซท์นั้นๆ นั่นอาจจะไม่ได้เป็นปัญหาใหญ่อะไร สำหรับเว็บไซท์ที่สร้างขึ้นมาเพื่อให้บริการภายในหน่วยงานกันเอง ซึ่งผู้ใช้งานในหน่วยงาน อาจจะใช้วิธีการอื่นๆ เช่นเดินไปถาม, โทรศัพท์ไปถาม, ส่ง e-mail ไปถาม … หรือในกรณีที่เป็นจริงส่วนใหญ่ ก็คือ ไม่ต้องถาม ก็แค่กดปุ่มยอมรับความเสี่ยง ให้ตัวเบราเซอร์จำเซอร์ติฟิเคทนั้นไว้ แล้วก็ใช้งานไปแค่นั้นเอง แต่นั่น อาจจะเป็นปัญหาในเรื่องของความน่าเชื่อถือ ถ้าเว็บไซท์ดังกล่าว เปิดให้บริการให้กับบุคคลภายนอกหน่วยงานด้วย ยกตัวอย่างที่ใกล้ตัวหน่อยก็แล้วกัน ถ้าเว็บไซต์ของภาควิชาใดภาควิชาหนึ่ง ในหลายๆคณะของมหาวิทยาลัยสงขลานครินทร์ เปิดให้บริการแบบ https ขึ้นมา และบุคคลภายนอก ซึ่งบุคคลภายนอกนี้ ไม่จำเป็นจะต้องเป็น บุคคลภายนอกของมหาวิทยาลัย แม้กระทั่งบุคคลากรของมหาวิทยาลัย แต่อยู่ต่างคณะ หรือแม้ต่างภาควิชา การที่จะตรวจสอบว่า เว็บดังกล่าว เป็นเว็บของหน่วยงานนั้นจริงๆ ก็เริ่มเป็นเรื่องยุ่งยากขึ้นมาระดับนึงแล้ว ถ้าต้องให้บริการกับบุคคลภายนอกมหาวิทยาลัยด้วย การที่จะตรวจสอบว่าเป็นเว็บของหน่วยงานนั้นๆ ยิ่งเป็นเรื่องที่ ยุ่งยากเกินเหตุ … แน่นอน ในทางปฏิบัติ ใครที่จำเป็นจะต้องเว็บไซท์เหล่านั้น ก็คงจะต้องใช้ต่อไป ก็เพราะจำเป็นที่จะต้องใช้

Read More »

psuautosigned for windows?

เช้าของวันที่ 14 ธันวาคม 2558 คุณ คณกรณ์ post ถามไว้ในกลุ่ม PSU Sysadmin บน facebook ว่า เรียนสอบถาม (จะได้ไม่ต้องทำซ้ำ) บน windows 10 ใครมี script ให้ทำการ auto authentication บ้างไม๊ครับ บางเครื่องต้องเปิดค้างไว้ข้ามวัน จะได้เข้ามาดูทางไกลได้ น่ะครับ ตอนนี้ใช้ team viewer ก็ยังติดเรื่องนี้อยู่ดี ขอบคุณครับ มีคุณ Thanongdat Noosrikaew กับคุณ ป้อม เภสัชฯ (Siripong Siriwan)  มาเสนอทางเลือกในการแก้ปัญหา แต่ดูเหมือนจะไม่ตรงกับที่เจ้าของคำถามต้องการสักเท่าไหร่ ผมอ่านแล้วก็ตั้งคำถามกับตัวเองว่า แล้วผมจะต้องตอบคำถามนี้ ผมมีทางเลือกอะไรบ้าง? คำตอบที่มีให้กับตัวเองก็คือ หากินกับของเก่าที่เคยทำเอาไว้แล้ว … คือ… มีคำสั่งคำสอน ที่ถ่ายทอดมาตั้งแต่ยุคโบราณกาลครั้งเก่าโพ้น ในชนเผ่า sysadmin ว่า sysadmin ที่ดีจะเป็นคนขี้เกียจ อะไรที่ได้ทำไว้แล้ว และยังเอามาใช้ได้ ก็ไม่ควรที่ทำขึ้นมาใหม่ … อันนั้น เป็นเรื่องที่ผมได้ยินมานะครับ จะเชื่อถือได้แค่ใหนก็แล้วแต่ท่านทั้งหลายจะได้พิจารณากัน ผมก็เลยพยายามทำตัวเป็น admin ขี้เกียจ .. เฮ่ย ไม่ใช่ เป็น admin ที่ดี ซึ่ง … ก็คือ ขี้เกียจน่ะแหละ -_-” มีอะไรที่เคยทำเอาไว้แล้ว ก็เอามา recycle ขายใหม่ ถ้าขายได้ … เราต้องช่วยกันอนุรักษ์สิ่งแวดล้อม … เกี่ยวกันใหม? คำตอบแรกที่ผมคิดได้ก็คือ ถ้า ยังหา solution บน Windows โดยตรงไม่ได้ และ ไม่รังเกียจที่จะติดตั้ง cygwin เพิ่มเข้าไปบนตัว windows ผมคิดว่า psuautosigned ที่เขียนไว้สำหรับ Linux ก็น่าจะพอดัดแปลงให้ใช้งานบน Windows ได้ครับ ฟังก์ชัน หลักๆ ต้องการแค่ shell ซึ่งอาจจะเป็น cmd.exe ของ windows เองก็ได้ กับโปรแกรมที่ชื่อว่า curl ครับ โปรแกรมอย่างอื่นเป็นแค่ตัวประกอบ แต่ทั้งหมด รวมทั้ง shell และ curl มีอยู่ใน cygwin อยู่แล้ว ผมไม่มีเครื่องที่ใช้งาน windows 10 ให้ลอง ถ้าจะช่วยทดสอบให้ ผมก็ยินดีที่จะแก้ script ให้รองรับ windows 10 ด้วยครับ โปรแกรม psuautosigned ที่ผมอ้างถึงคือ ตัวนี้ ซึ่งเคยเขียนถึงเอาไว้แล้ว ที่นี่ , ที่นี่, ที่นี่, และ ที่นี่ … ซึ่ง มาคิดดูอีกที เยอะแฮะ กับ script ตัวเดียวทำไมจะต้องเขียนบันทึกเกี่ยวกับมันหลายบันทึกด้วยก็ไม่รู้ จะว่าไป บันทึกนี้เอง ก็นับเป็นหนึ่งในชุดนี้ด้วยแหละ ส่วน cygwin ก็คือ https://www.cygwin.com/ เป็น tools สำหรับ Windows ให้สามารถใช้งานได้เหมือน(หรือใกล้เคียงมากๆ) กับการใช้ชีวิตอยู่บน Unix Command Line … ซึ่งเนื่องจาก script psuautosigned พัฒนาและใช้งานบน Linux ถ้าจะให้เอาไปใช้งานบนเครื่อง Windows 10 ได้ตามความต้องการของคุณหนุ่ม ก็ต้องการเครื่องมือเหล่านี้ มาช่วยด้วย นั่นหมายถึงว่า ถ้าจะเอาไปใช้ จะต้องติดตั้งโปรแกรมเพิ่ม และ ถึงแม้ว่า cygwin จะสร้างสภาพแวดล้อมแบบ Unix บนเครื่อง Windows เจ้าตัว script ที่ผมเขียน และ ทดสอบบน Debian Linux ก็จะยังไม่สามารถเอาไปใช้งานได้ทันที มันจะต้องการแก้ไขบางส่วนแน่ ๆ พอนั่งทบทวนไปสักพักว่ามีส่วนใหนที่จะต้องแก้ไขบ้าง จากความจำที่ค่อนข้างลางเลือนในส่วนที่เกี่ยวข้องกับ cygwin

Read More »

dnsqsum script

DNS Query Summary Script สำหรับ Summary DNS Query Log เพื่อดูว่ามีการ query มาจาก host ใหน และ query domain ใหนบ้าง โดยแสดงเฉพาะ Top 10 — quick & dirty version — #!/bin/bash QLOG=”/var/log/named/query.log” [ ! -f “$QLOG” ] && echo “Log file ‘$QLOG’ doesn’t exist?” && exit DCOL=6 V=`head -1 $QLOG | cut -f5 -d’ ‘` if [ “$V” = “view” ]; then DCOL=8 fi echo “===== Source of Query =====” cat $QLOG | cut -f4 -d’ ‘ | cut -f1 -d’#’ | sort | uniq -c | sort -rn | head echo “=———————-=” echo “===== Domain to Query =====” cat $QLOG | cut -f$DCOL -d’ ‘ | sort | uniq -c | sort -rn | head echo “=———————-=”

Read More »