Score:1

กำหนด oslevel แบบเต็ม (รวมถึงวันที่สร้าง) ของที่เก็บ AIX แบบโลคัลโดยไม่ต้องแพตช์/ติดตั้ง

ธง br

ในสภาพแวดล้อมของเรา เซิร์ฟเวอร์ AIX เดียวเท่านั้นที่ได้รับอนุญาตให้เข้าถึงอินเทอร์เน็ตผ่านไฟร์วอลล์ บนเซิร์ฟเวอร์เดียวนี้ ฉันใช้ suma เพื่อดาวน์โหลดการแก้ไขทั้งหมดสำหรับระดับฐาน ระดับเทคโนโลยี และเซอร์วิสแพ็คทั้งหมดที่เรามีในสภาพแวดล้อมของเรา สิ่งนี้ทำทุกวัน เดือนละครั้ง ฉันจะคัดลอกการแก้ไขทั้งหมดรวมกันในหนึ่งโฟลเดอร์ต่อระดับพื้นฐาน และฉันใช้ inutoc เพื่อสร้างที่เก็บสองสามแห่งที่ถูกแช่แข็งและสามารถใช้เพื่อแพตช์เซิร์ฟเวอร์ AIX ทั้งหมดของเรา วิธีนี้ทำให้เรามั่นใจได้ว่าเซิร์ฟเวอร์ทั้งหมดอยู่ในระดับ oslevel เดียวกัน เราเรียกสิ่งนี้ว่า "แพตช์เซ็ตรายเดือน"

เรามีไฟล์ CSV ที่แสดงเวอร์ชันเคอร์เนลทั้งหมดสำหรับแต่ละ "แพตช์เซ็ตรายเดือน" สำหรับระบบปฏิบัติการ UNIX/Linux OS ทั้งหมดของเรา ไฟล์ CSV นั้นถูกใช้โดยสคริปต์การแพตช์/การตรวจสอบความถูกต้องของเรา สำหรับ Linux / Solaris ฉันพบ "เคล็ดลับ" เพื่อกำหนดเวอร์ชันเคอร์เนลจากไฟล์ที่เก็บเอง แต่ใน AIX ฉันล้มเหลวในการหา oslevel โดยไม่ต้องแพตช์เซิร์ฟเวอร์ด้วย หลังจากการแพตช์ ฉันสามารถรัน 'oslevel -s' เพื่อหา oslevel ได้ แต่นั่นก็สายเกินไป เนื่องจากสคริปต์การแพตช์ของเราใช้ / ต้องการ oslevel ก่อนที่จะเริ่มการแพตช์จริง

ไม่มีใครรู้เคล็ดลับในการทำให้สำเร็จหรือไม่? ฉันได้ลองสิ่งต่อไปนี้แล้ว:

  • โฟลเดอร์ที่เก็บของเรามีไฟล์ *.bff จำนวนมาก ซึ่งเป็นไฟล์ไบนารี ดังนั้นในไฟล์เหล่านั้น ผมหา oslevel ไม่เจอ
  • ชื่อไฟล์ *.bff ส่วนใหญ่จะเป็น 'U' ตามด้วยตัวเลขและ '.bff' (จึงใช้ไม่ได้สำหรับการกำหนด oslevel) แต่บางชื่อไฟล์มี (บางส่วนของ) oslevel ในชื่อไฟล์ ตัวอย่างเช่น: 7200-01-06.bff 7200-02-01-1732.bff 7200-02-06.bff 7200-03-06.bff 7200-03.bff 7200-04-01.bff 7200-04-02 .bff 7200-04-03.bff 7200-04.bff 7200-05-01.bff 7200-05-02.bff 7200-05.bff อย่างไรก็ตาม อย่างที่คุณเห็นจาก oslevels ล่าสุด ส่วน 'วันที่สร้าง' หายไปในชื่อไฟล์
  • เราแก้ไขโดยใช้ install_all_updates -Y -d <เส้นทาง_to_repo> สั่งการ. ฉันได้ลองใช้ install_all_updates -p -d <เส้นทาง_to_repo>โดยหวังว่าจะมองเห็นได้ที่ไหนสักแห่งในเอาต์พุต แต่ก็ไม่เป็นเช่นนั้น
  • ฉันยังพยายาม installp -[lL] -d <path_to_repo>แต่ยังมองไม่เห็น oslevel

ฉันหวังว่าจะมีคนสามารถช่วยฉันได้

แก้ไขด้านล่าง (เป็นการตอบกลับ @Jeff Schaller คำตอบของเขา)

ขอบคุณมากสำหรับความช่วยเหลือของคุณ!

ใกล้จะตรงกันแล้ว แต่กลัวไม่ตรง...

--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | grep :bos\.rte\.ติดตั้ง: | จัดเรียง -t: -k17n | หาง -1 | awk -F: '{พิมพ์ $3, $17}'
7.2.4.2 2480
root@ชื่อเซิร์ฟเวอร์ /nim/export
--> ออสเลเวล -s
7200-04-01-1939
root@ชื่อเซิร์ฟเวอร์ /nim/export

ไม่แน่ใจว่าทำไม... ความคิดใด?

รายละเอียดเพิ่มเติม:

--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | เกรป 1937 | สุขา -l
     613
root@ชื่อเซิร์ฟเวอร์ /nim/export
--> installp -L -d /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511 | เกรป 1939 | สุขา -l
       0
root@ชื่อเซิร์ฟเวอร์ /nim/export
--> 

ดังนั้นฉันคิดว่าต้องมีบางแพ็คเกจที่ติดตั้งพร้อมกับ builddate ของปี 1939 ที่ทำให้ 'oslevel-s' แสดง builddate นั้น ดังนั้นฉันจึงรันคำสั่งต่อไปนี้เพื่อค้นหาแพ็คเกจนี้:

--> lslpp -Lc ทั้งหมด | awk -F':' '{พิมพ์ $2" "$3" "$18}' | เกรป 1937 | สุขา -l
     288
root@ชื่อเซิร์ฟเวอร์ /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
--> lslpp -Lc ทั้งหมด | awk -F':' '{พิมพ์ $2" "$3" "$18}' | เกรป 1939 | สุขา -l
       0
root@ชื่อเซิร์ฟเวอร์ /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
--> ออสเลเวล -s
7200-04-01-1939
root@ชื่อเซิร์ฟเวอร์ /nim/export/repos/AIX/AIX7200_OS-Vendor_Repo_20200511
--> 

อย่างที่คุณเห็น ฉันไม่พบแพ็คเกจนี้... :(

แก้ไข #2 ด้านล่าง (เป็นการตอบกลับ @Jeff Schaller ความคิดเห็นของเขา)

รูท@ชื่อเซิร์ฟเวอร์ /
--> instfix -ic | เกรป 7200-04 | เกรป :-:
รูท@ชื่อเซิร์ฟเวอร์ /

นั่นไม่ได้กลับมาพร้อมกับสิ่งที่ฉันกลัว

นอกจากนี้ ฉันไม่แน่ใจว่าคุณหมายถึงอะไรกันแน่กับ "... server is back-leveled from theที่คาดไว้ oslevel..." มันตรงกันข้ามไม่ใช่เหรอ? 'oslevel -s' ให้วันที่สร้างเป็นปี 1939 ในขณะที่แพ็คเกจทั้งหมดระบุว่าวันที่สร้างควรเป็นปี 1937 นั่นไม่ใช่ "ระดับหน้า" หรือไม่

Jeff Schaller avatar
nf flag
จากการอัปเดตของคุณที่เซิร์ฟเวอร์ได้รับการปรับระดับกลับจาก `oslevel' ที่คาดไว้ ฉันเดาว่ามันขาดแพ็คเกจหนึ่งหรือสองแพ็คเกจ ลอง `instfix -ic | เกรป 7200-04 | grep :-:` เพื่อค้นหาแพ็คเกจที่อ้างอิงในระดับ TL4 ที่ไม่ได้ติดตั้ง
Jeff Schaller avatar
nf flag
วันที่สร้างถูกข้ามกับ TL/SP -- repo เป็น TL4SP2 ที่ใหม่กว่า แต่ระบบปฏิบัติการที่รันคือ TL4SP1 ในขณะที่ repo มีวันที่สร้างที่เก่ากว่าระบบปฏิบัติการที่รันอยู่ อาจมีแพ็คเกจใน repo ที่ไม่ได้ติดตั้งใน OS และมีแพตช์สำหรับระบบปฏิบัติการที่ใช้งานอยู่ของแพ็คเกจที่มีวันที่สร้างใหม่กว่า
cn flag
โปรดระบุอีกครั้งว่าทำไมคุณไม่สามารถเรียกใช้ `oslevel -s` _ก่อนการแพตช์_ เฉพาะ _หลังจากนั้น?_
Score:0
ธง nf

ขั้นตอนหนึ่งที่อาจเป็นประโยชน์ในระหว่างทางคือการใช้ bffcreate คำสั่งเพื่อแปลงชื่อไฟล์ bff เหล่านั้นเป็นชื่อไฟล์ตามแพ็คเกจ บางสิ่งบางอย่างตามแนวของ bffcreate -c -d /path/to/repo.bffcreate.

เพื่อตอบคำถาม เมื่อคุณเรียกใช้แล้ว inutoc หากต้องการสร้างไฟล์ .toc คุณสามารถถามได้ ติดตั้ง เพื่อแสดงรายการเนื้อหาของไฟล์ TOC ของ repo นั้นในเอาต์พุตที่คั่นด้วยโคลอน ซึ่งรวมถึงวันที่สร้างในฟิลด์ 17 แพ็คเกจ bos.rte.install จะเป็นหนึ่งในแพ็คเกจที่มีวันที่สร้างล่าสุด ดังนั้นคุณสามารถค้นหาและ แยก VRMF (เวอร์ชัน, รีลีส, การปรับเปลี่ยน, แก้ไข) และวันที่สร้าง:

sudo installp -L -d /path/to/repo | grep :bos\.rte\.ติดตั้ง: | จัดเรียง -t: -k17n | หาง -1 | awk -F: '{พิมพ์ $3, $17}'

ซึ่งจะแสดงผล VRMF และวันที่สร้างของแพ็คเกจ bos.rte.install ใน repo นั้น ปรับ อึดอัด พิมพ์คำสั่งหากคุณสนใจเพียงหนึ่งฟิลด์หรืออีกฟิลด์หนึ่ง เดอะ หมายเลขรุ่นอยู่ในรูปแบบ YYww (ปี 2 หลัก สัปดาห์ 2 หลักของปีนั้น) VRMF ของ bos.rte.install จะสอดคล้องกับเอาต์พุตจาก ออสเลเวล; คุณอาจใช้สามฟิลด์แรกในการจับคู่ ออสเลเวล -r เอาท์พุต; ตัวอย่างเช่น VRMF ของ 7.2.4.6 สัมพันธ์กับ oslevel 7200-04 เช่นเดียวกับ VRMF 7.2.4.2 -- 7.2 เริ่มต้นให้ส่วน "7200" และ 4 ให้ส่วน "-04"

Score:0
ธง br

ในท้ายที่สุด นี่คือวิธีแก้ปัญหาที่ฉันได้นำไปใช้ (ซึ่งให้ oslevel แบบเต็มที่ถูกต้องแก่ฉัน):

กำลังสร้างที่เก็บ

  1. คัดลอกแพ็คเกจทั้งหมดเป็น *.bff ลงใน ${REPO_SNAPSHOT_PATH}
  2. สร้างไฟล์ .toc ใหม่: rm -f "${REPO_SNAPSHOT_PATH}.toc" 2>&1 ; ซีดี "${REPO_SNAPSHOT_PATH}" ; อินทูแอค
  3. ล้างที่เก็บ: /usr/lib/instl/lppmgr -rubxVd "${REPO_SNAPSHOT_PATH}"
  4. เปลี่ยนชื่อไฟล์ bff เป็นชื่อแพ็คเกจที่เข้าใจได้: bffcreate -c -d "${REPO_SNAPSHOT_PATH}"
  5. สร้างไฟล์ .toc ใหม่อีกครั้ง: rm -f "${REPO_SNAPSHOT_PATH}.toc" 2>&1 ; ซีดี "${REPO_SNAPSHOT_PATH}" ; อินทูแอค

คิดออก oslevel เต็ม

  1. สร้าง LPP Source จาก repo: nim -o กำหนด -t lpp_source -a server=master -a location="${REPO_SNAPSHOT_PATH}" "${LPP_SOURCE_NAME}"
  2. สร้างสปอตจากแหล่ง LPP นี้: nim -o กำหนด -t spot -a source="${LPP_SOURCE_NAME}" -a server=master -a location="${SPOT_PATH}" "${SPOT_NAME}"
  3. รับ oslevel เต็มรูปแบบจากจุดนี้: FULL_OSLEVEL="$(lsnim -l ${SPOT_NAME} 2>/dev/null | awk '$1=="oslevel_s" {พิมพ์ $3}')"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา