Score:4

crontab ครั้งแรก นี้ทำงานได้?

ธง kr

ฉันพยายาม "เข้ารหัส" ด้วยตัวเองและนี่คือสิ่งที่ฉันคิดขึ้นมา:

00 02 * * 1,3,5 ปิด sudo -r
@เที่ยงคืน sudo apt-get update && sleep 60 && apt-get upgrade -y
@reboot sleep 60 && sudo netplan ใช้ && sleep 15 && sudo omd เริ่มต้นเว็บไซต์

จำเป็นอย่างยิ่งที่ทั้งเครือข่ายและเว็บไซต์จะต้องเปิดใช้งานหลังจากรีบูต นอกจากนี้ยังเป็น 1,3,5 ส่วนที่เป็นไปได้? สิ่งนี้จะรีสตาร์ทเครื่องใน Mo, We และ Fr หรือไม่ และจะเป็นการดี/ฉลาดไหมที่จะตั้งเวลารีสตาร์ทหลังการอัปเดต/อัปเกรด

jp flag
Dan
ฉันไม่มีส่วนเกี่ยวข้องกับเว็บไซต์ แต่ฉันใช้ไซต์นี้บ่อยครั้งเพื่อตรวจสอบ "การตั้งค่า" crontab ของฉัน: https://crontab.guru/
cn flag
@dan หนึ่งในบุ๊กมาร์กจำนวนมากของฉัน ;-)
in flag
คุณกำลังพยายามทำอะไรกันแน่? ฉันรู้ว่าแต่ละบรรทัดทำหน้าที่อะไร แต่เป้าหมายของคุณคืออะไร ทำไม omd ไม่ใช่บริการ จุดประสงค์ของการรีสตาร์ทระบบคืออะไร? การอัปเกรดแบบอัตโนมัติจะอัปเกรดระบบของคุณอย่างน่าเชื่อถือสำหรับการอัปเกรดความปลอดภัย (หรือการอัปเกรดอื่นๆ หากคุณตั้งค่าไว้)
Andrej Podzimek avatar
cn flag
ฉันขอแนะนำอย่างยิ่งให้คุณใช้ตัวจับเวลา `systemd` แทน การเรียนรู้ 'crontab' ในปี 2021 มีประโยชน์จำกัด เว้นแต่จะเป็นโครงการพิพิธภัณฑ์ประวัติศาสตร์คอมพิวเตอร์บางประเภท
Score:8
ธง vn

ความคิดเห็นทั่วไป: แทนที่จะใช้ ซูโด ใน ผู้ใช้ crontab ให้ลองใส่คำสั่งเหล่านี้ในไฟล์ ราก crontab เพื่อให้รันได้โดยไม่ต้องใช้ sudo

สำหรับ crontab 3 บรรทัดของคุณ:

@เที่ยงคืน sudo apt-get update && sleep 60 && apt-get upgrade -y

มันเป็นไปได้อย่างสมบูรณ์ที่จะทำ apt-รับการปรับปรุง และ apt-get อัพเกรด -y ทางนี้. (ไม่ได้มีไว้สำหรับเซิร์ฟเวอร์ที่ใช้งานจริง และอยู่ภายใต้เงื่อนไขที่คุณเข้าใจความหมายของการอัปเกรดแบบอัตโนมัติ)

00 02 * * 1,3,5 ปิด sudo -r

ฉันไม่คิดว่าจำเป็นต้องรีบูต 3 ครั้งต่อสัปดาห์ ตัวฉันเองใช้สคริปต์รีบูตอย่างง่ายนี้: (เรียกว่า auto-reboot.sh)

#!/bin/bash

[[ -f /var/run/reboot-required.pkgs ]] && รีบูต

ดังนั้นฉันจึงรันสคริปต์นี้ด้วย cron ทุกสัปดาห์ หลังจากอัปเกรดและล้างสคริปต์แล้ว จะรีบูตเฉพาะเมื่อจำเป็นต้องรีบูตเครื่อง (หาก /var/run/reboot-required.pkgs มีอยู่). (อีกครั้ง สิ่งนี้ไม่ได้มีไว้สำหรับเซิร์ฟเวอร์ที่ใช้งานจริง)

@reboot sleep 60 && sudo netplan ใช้ && sleep 15 && sudo omd เริ่มต้นเว็บไซต์

ไม่เข้าใจทำไมต้องวิ่ง สมัครเน็ตแพลน เมื่อรีบูต

นอกจากนี้ วิธีที่เชื่อถือได้มากกว่าในการเริ่มบริการที่ขึ้นอยู่กับบริการหรือเงื่อนไขอื่น (เช่น เครือข่าย) คือการสร้าง systemd .บริการ ในการทำงาน มีแบบฝึกหัดมากมายสำหรับสิ่งนี้ (1, 2) ที่อยากแนะนำให้คุณลองดู

cn flag
และเผื่อมีคนอยากรู้: เราเขียน 2 ตัวนี้เป็นอิสระจากกัน และโดยส่วนใหญ่แล้วเขียนสิ่งเดียวกัน ทำให้ฉันยิ้มได้ :-) ฉันไม่สามารถเป็นผู้โหวตคนเดียวได้ :(
Artur Meinild avatar
vn flag
ใช่ เหมือนกันสำหรับฉัน - โดยทั่วไปจะเป็นข้อความเดียวกัน แต่ครอบคลุมความแตกต่างเล็กน้อยที่แตกต่างกัน ;-)
SomeDude avatar
kr flag
โอเคร ขอบคุณมากครับ... ปัญหาของเครื่องคือเครื่องค้างหลังจากเวลาทำงานประมาณ 5 วัน และฉันมี 3 ครั้งแล้วที่การตั้งค่าเครือข่ายปิดหลังจากรีบูต และฉันต้องสมัครเน็ตแพลนใหม่ ดังนั้นฉันคิดว่าฉันอาจจะรีสตาร์ทพีซีเป็นระยะๆ เนื่องจากฮาร์ดแวร์ส่วนใหญ่ไม่สามารถทำงานได้ตลอด 24 ชั่วโมงทุกวัน
terdon avatar
cn flag
@SomeDude ที่ดูเหมือนว่าคุณมีปัญหาร้ายแรงที่ไหนสักแห่ง _laptop_ ของฉันสามารถทำงานได้ตลอด 24 ชั่วโมงทุกวัน นึกไม่ถึงว่าฮาร์ดแวร์ของคุณจะทำไม่ได้ ตรวจสอบ RAM ของคุณและสลับการใช้งานหรือถามคำถามใหม่ แล้วเราจะช่วยคุณตรวจสอบได้
SomeDude avatar
kr flag
@terdon ฉันใช้ [HP Prodesk 600 G3 mini](https://support.hp.com/us-en/document/c05364047) ที่ปลดประจำการแล้วกับ i5-7500T และ 8GB DDR4 ซึ่งมีอายุ 4 ปีแล้ว... ฉัน สามารถก้าวขึ้นและสร้าง VM บนเซิร์ฟเวอร์จริงของเราได้ แต่สำหรับวัตถุประสงค์ในการทดสอบ ฉันใช้พีซีเครื่องนี้ เพื่อทำความคุ้นเคยกับซอฟต์แวร์และอะไรก็ตาม มีวิธีง่ายๆ ในการตรวจสอบว่าเป็นปัญหาของฮาร์ดแวร์หรือไม่
Artur Meinild avatar
vn flag
[ที่นี่](https://askubuntu.com/questions/1038701/how-do-i-check-system-health) เป็นเธรดที่มีข้อมูลเกี่ยวกับการทดสอบฮาร์ดแวร์ นอกจากนี้ ลองค้นหาแท็ก [การทดสอบฮาร์ดแวร์](https://askubuntu.com/questions/tagged/hardware-test)
Score:8
ธง cn

ไม่.

  • คุณไม่ได้ใช้ sudo ใน cron ใช้ root crontab หากคุณต้องการเข้าถึงคำสั่งที่ต้องการรูท
  • ใช้เส้นทางที่แน่นอนเสมอเมื่ออยู่ใน cron
  • และคุณไม่ควรอัปเกรดเซิร์ฟเวอร์ --production-- โดยไม่มีใครดูแล คุณทำด้วยตนเอง ดีมากถ้าเป็นเดสก์ท็อปหรือเป็นเซิร์ฟเวอร์ทดสอบ/การจัดเตรียม ประสบการณ์ส่วนตัวของฉันมาจากการใช้เซิร์ฟเวอร์ CLOUD: สิ่งที่ผิดพลาดระหว่างการรีบูตนั้นร้ายแรง.

แต่ถ้าคุณต้องการทำสิ่งนี้จริง ๆ ฉันจะเพิ่ม 3 ต่อไปนี้ ...

  • เพิ่มการบันทึกลงในคำสั่ง "apt"
  • เพิ่มเมธอดเพื่อส่งสิ่งที่พิมพ์ระหว่างคำสั่ง apt
  • ก่อน "apt" คุณควรทำการสำรองข้อมูลระบบทั้งหมดซึ่งเก็บไว้นอกเซิร์ฟเวอร์ เมื่อการอัปเดต/อัปเกรดผิดพลาดและส่งผลกระทบต่อระบบของคุณ (99 จาก 100 ไม่ใช่ แต่คุณไม่ต้องการให้สิ่งนั้นเกิดขึ้น ;)) การทำให้ระบบของคุณกลับสู่สถานะการทำงานล่าสุดมีความสำคัญมากกว่าการแก้ไขปัญหา

นอน 60 && sudo netplan ใช้ && นอน 15 && sudo omd เริ่มเว็บไซต์

สิ่งนี้ไม่จำเป็น ฉันจะจัดการสิ่งนี้ด้วย "บริการ" ด้วยวิธีนี้คุณสามารถสร้างสายคำสั่งที่รอซึ่งกันและกัน "นอน 60" และ "นอน 15"... แล้วถ้าต้องเป็น 61 และ 16 ล่ะ? บริการจะแก้ไขปัญหานั้นให้คุณ

นอกจากนี้ส่วนที่ 1,3,5 ใช้งานได้หรือไม่ สิ่งนี้จะรีสตาร์ทเครื่องใน Mo, We และ Fr หรือไม่

ดังที่ Dan กล่าวในความคิดเห็น: crontab.guru เมื่อกฎ crontab ของคุณแทรกสถานะ "เวลา 02:00 น. ของวันจันทร์ วันพุธ และวันศุกร์"

หากไม่มีเหตุผลในการรีบูตฉันจะไม่ดำเนินการ ฉันมีเซิร์ฟเวอร์ที่ใช้งานมานานกว่า 5 ปี โดยที่ทุกครั้งที่ฉันกำจัดปัญหาเกี่ยวกับหน่วยความจำและสิ่งที่ชอบ :+

raj avatar
cn flag
raj
สำหรับการส่งจดหมายนั้นเพียงพอแล้วที่เซิร์ฟเวอร์จะติดตั้ง MTA (ซึ่งควรเป็นเรื่องปกติสำหรับเซิร์ฟเวอร์ - อย่างน้อยก็ใน Debian ฉันไม่รู้ว่าในเซิร์ฟเวอร์ Ubuntu เป็นอย่างไรเพราะฉันใช้ Ubuntu รุ่น dekstop เท่านั้น) จากนั้น cron จะส่งเอาต์พุตไปยังรูทโดยอัตโนมัติ
cn flag
มีแนวโน้มว่าจะเหมือนกันใน Ubuntu ฉันรู้ว่าฉันได้รับเมลจากเซิร์ฟเวอร์ของเรา แต่ไม่เคยต้องเจาะลึกถึงวิธีการ :D
Artur Meinild avatar
vn flag
คุณต้องติดตั้งและตั้งค่า MTA (ค่าเริ่มต้นคือ `postfix`) บนเซิร์ฟเวอร์ และการส่งจดหมายภายในจะทำงานได้ "นอกกรอบ" อย่างไรก็ตาม หากควรส่งไปยังที่อยู่อีเมลภายนอก จะต้องกำหนดค่าด้วย DKIM เป็นต้น เพื่อป้องกันการถูกตั้งค่าสถานะว่าไม่น่าเชื่อถือและ/หรือสแปม
SomeDude avatar
kr flag
สำหรับคำสั่งสัมบูรณ์: มีวิธีง่ายๆ ในการค้นหาไดเร็กทอรีที่มีคำสั่งอยู่หรือไม่? ฉันลองใช้ man page และดูผ่าน bin & sbin แต่ฉันไม่แน่ใจจริง ๆ ว่าฉันสามารถเชื่อถืองานวิจัยของตัวเองได้หรือไม่... apt ที่ฉันพบใน /bin เช่น... ขอบคุณสำหรับแนวคิดเกี่ยวกับบริการ ฉันจะลองดู
Artur Meinild avatar
vn flag
ใช้คำสั่ง ` which ` เช่น ` ซึ่ง apt `
terdon avatar
cn flag
อันที่จริง ให้ใช้ `type` ไม่ใช่ ' which ' เนื่องจาก `type` จะแก้ไขนามแฝง ฟังก์ชัน ฯลฯ ดู [ทำไมไม่ใช้ "อันไหน" จะใช้อะไรดี](https://unix.stackexchange.com/q/85249)
in flag
"และคุณไม่ควรอัปเกรด -- การผลิต-- เซิร์ฟเวอร์แบบอัตโนมัติ" การอัปเกรดความปลอดภัยมักจะไม่ใช่ปัญหา ซึ่งเป็นค่าเริ่มต้นสำหรับการอัปเกรดแบบอัตโนมัติ
Score:2
ธง in

ฉันเห็นด้วยกับทุกสิ่งในคำตอบอื่น ๆ แต่ขอเพิ่มสิ่งนี้ ...

มันอันตรายที่จะวิ่ง ฉลาดรับ ไม่ต้องใส่ แอปพลิเคชั่นจำนวนหนึ่งถามคำถามระหว่างการอัพเกรดและการติดตั้งการอัพเกรด และบางแอปพลิเคชั่นต้องการการป้อนข้อมูลด้วยแป้นพิมพ์ หากคุณวางไว้ในพื้นหลังและจะหยุดทำงาน แม้ว่าจะไม่ต้องการการป้อนข้อมูลจากแป้นพิมพ์ก็ตาม

การพยายามเรียกใช้ apt-get ในพื้นหลังเช่นนี้เป็นวิธีที่ดีในการลงเอยด้วยระบบที่การอัปเดตเสียหายและต้องกำหนดค่าและดำเนินการต่อด้วยตนเอง

กระบวนการอัปเกรดแบบไม่ต้องใส่ข้อมูลควรติดตั้งการอัปเดตที่สำคัญโดยอัตโนมัติโดยไม่มีการแทรกแซง

หากเครื่องของคุณขัดข้อง คุณต้องตรวจสอบสาเหตุ อาจเรียกใช้การวินิจฉัยฮาร์ดแวร์ข้ามคืน ตรวจสอบบันทึกในช่วงเวลาที่เกิดข้อขัดข้อง อาจตรวจสอบว่ามีบางอย่างที่หน่วยความจำไม่เพียงพอและทำให้เครื่องค้างหรือไม่ ฯลฯ...

นอกจากนี้ คุณต้องเรียกใช้ ฉลาดลบอัตโนมัติ บางครั้งหรือการอัปเดตเคอร์เนลจะรวบรวมจนกว่าดิสก์ของคุณจะเต็ม

โพสต์คำตอบ

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