Điểm:4

Lần đầu tiên crontab. Điều này có khả thi không?

lá cờ kr

Tôi đã cố gắng tự mình "viết mã" và đây là những gì tôi nghĩ ra:

00 02 * * 1,3,5 sudo tắt máy -r
@midnight Sudo apt-get update && sleep 60 && apt-get upgrade -y
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website

Điều quan trọng là cả mạng và trang web đều hoạt động sau khi khởi động lại. Ngoài ra, là 1,3,5 một phần khả thi? Điều này có khởi động lại máy trên Mo, We và Fr không? Và sẽ tốt/thông minh nếu lên lịch khởi động lại sau khi cập nhật/nâng cấp?

lá cờ jp
Dan
Tôi không có liên kết với trang web, nhưng tôi thường sử dụng trang này để xác thực "tùy chọn" crontab của mình: https://crontab.guru/
lá cờ cn
@dan một trong nhiều dấu trang của tôi ;-)
lá cờ in
Chính xác những gì bạn đang cố gắng để làm? Tôi biết những gì mỗi dòng làm, nhưng mục tiêu của bạn là gì? Tại sao omd không phải là một dịch vụ? Điểm khởi động lại hệ thống là gì? Nâng cấp không giám sát nâng cấp hệ thống của bạn một cách đáng tin cậy để nâng cấp bảo mật (hoặc các nâng cấp khác nếu bạn cài đặt).
Andrej Podzimek avatar
lá cờ cn
Thay vào đó, tôi thực sự khuyên bạn nên sử dụng bộ hẹn giờ `systemd`. Việc học `crontab` vào năm 2021 chỉ có ích một chút, trừ khi đó là một dự án bảo tàng lịch sử máy tính nào đó.
Điểm:8
lá cờ cn

Không.

  • Bạn không sử dụng sudo trong cron. sử dụng root crontab nếu bạn cần truy cập vào các lệnh cần root
  • Luôn sử dụng các đường dẫn tuyệt đối khi ở trong cron.
  • Và bạn không nên nâng cấp máy chủ --production-- mà không được giám sát; bạn làm điều đó bằng tay. Thật tuyệt nếu đó là máy tính để bàn hoặc nếu đó là máy chủ thử nghiệm/dàn dựng. Kinh nghiệm cá nhân của tôi là từ việc sử dụng máy chủ CLOUD: bất cứ điều gì xảy ra trong quá trình khởi động lại đều gây tử vong.

Nhưng nếu bạn thực sự muốn làm điều này, tôi sẽ thêm 3 ...

  • thêm ghi nhật ký vào các lệnh "apt"
  • thêm một phương thức để gửi cho bạn những gì đã được in trong các lệnh apt.
  • trước "apt", bạn thực sự cũng nên tạo một bản sao lưu toàn bộ hệ thống được lưu trữ bên ngoài máy chủ. Khi cập nhật/nâng cấp gặp sự cố và nó ảnh hưởng đến hệ thống của bạn (99 trên 100 là không nhưng bạn không muốn điều đó xảy ra;)) đưa hệ thống của bạn trở lại trạng thái hoạt động cuối cùng quan trọng hơn là khắc phục sự cố.

ngủ 60 && sudo netplan áp dụng && ngủ 15 && sudo omd bắt đầu trang web

Điều này không cần thiết. Tôi sẽ sắp xếp việc này với một "dịch vụ". Bằng cách đó, bạn có thể tạo một chuỗi lệnh chờ lẫn nhau. "ngủ 60" và "ngủ 15"... nếu cần là 61 và 16 thì sao? Dịch vụ sẽ khắc phục vấn đề đó cho bạn.

Ngoài ra, phần 1,3,5 có khả thi không? Điều này có khởi động lại máy trên Mo, We và Fr không?

Như Dan đã nói trong một bình luận: crontab.guru với các quy tắc crontab của bạn được chèn vào trạng thái "Lúc 02:00 vào Thứ Hai, Thứ Tư và Thứ Sáu."

Nếu không có lý do để khởi động lại, tôi sẽ không thực hiện nó. Tôi có các máy chủ đã hoạt động được hơn 5 năm, trong đó thỉnh thoảng tôi lại dọn dẹp các vấn đề về bộ nhớ và những thứ tương tự :+

raj avatar
lá cờ cn
raj
Đối với việc gửi thư, máy chủ đã cài đặt MTA là đủ (điều này là bình thường đối với máy chủ - ít nhất là trong Debian, tôi không biết làm thế nào trong Ubuntu Server vì tôi chỉ sử dụng các phiên bản Dekstop của Ubuntu). Sau đó, cron sẽ tự động gửi bất kỳ đầu ra nào tới root.
lá cờ cn
Điều đó có thể giống với Ubuntu. Tôi biết tôi nhận được thư từ máy chủ của chúng tôi nhưng chưa bao giờ tìm hiểu kỹ về cách thực hiện :D
Artur Meinild avatar
lá cờ vn
Bạn phải cài đặt và thiết lập MTA (mặc định là `postfix`) trên máy chủ và việc gửi thư nội bộ hoạt động "vượt trội". Tuy nhiên, nếu nó gửi đến một địa chỉ thư bên ngoài, địa chỉ này cần được định cấu hình bằng DKIM, v.v. để tránh bị gắn cờ là không đáng tin cậy và/hoặc thư rác.
SomeDude avatar
lá cờ kr
Đối với các lệnh tuyệt đối: có cách nào dễ dàng để tìm các thư mục chứa các lệnh không? Tôi đã thử trang hướng dẫn và xem qua bin & sbin nhưng tôi không thực sự chắc chắn liệu mình có thể tin tưởng vào nghiên cứu của riêng mình hay không... Ví dụ: apt tôi tìm thấy trong /bin... Cảm ơn ý tưởng với các dịch vụ, tôi sẽ xem xét điều đó.
Artur Meinild avatar
lá cờ vn
Sử dụng lệnh ` which`, tức là ` which apt`.
terdon avatar
lá cờ cn
Trên thực tế, hãy sử dụng `type`, không phải ` which` vì `type` cũng sẽ giải quyết các bí danh, hàm, v.v. Xem [Tại sao không sử dụng "cái nào"? Sau đó sử dụng cái gì?](https://unix.stackexchange.com/q/85249)
lá cờ in
Nâng cấp bảo mật "Và bạn không nên nâng cấp máy chủ --production-- không giám sát" thường không phải là vấn đề, đây là mặc định cho các bản nâng cấp không giám sát.
Điểm:8
lá cờ vn

Nhận xét chung: Thay vì sử dụng sudo bên trong người dùng crontab, hãy xem xét đặt các lệnh này trong nguồn gốc crontab, để chúng có thể chạy mà không cần sudo.

Đối với 3 dòng crontab của bạn:

@midnight Sudo apt-get update && sleep 60 && apt-get upgrade -y

Nó hoàn toàn khả thi để làm cập nhật apt-getnâng cấp apt-get -y theo cách này. (Không dành cho máy chủ sản xuất và với điều kiện bạn hiểu tác động của việc nâng cấp không giám sát.)

00 02 * * 1,3,5 sudo tắt máy -r

Tôi không nghĩ cần phải khởi động lại 3 lần một tuần. Bản thân tôi sử dụng tập lệnh khởi động lại rất đơn giản này: (được gọi là tự động khởi động lại.sh)

#!/bin/bash

[[ -f /var/run/reboot-required.pkgs ]] && khởi động lại

Vì vậy, tôi chạy tập lệnh này với cron hàng tuần, sau tập lệnh nâng cấp và dọn dẹp của tôi. Nó chỉ khởi động lại nếu máy cần được khởi động lại (nếu /var/run/reboot-required.pkgs hiện hữu). (Một lần nữa, điều này không dành cho máy chủ sản xuất.)

@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website

Tôi không hiểu tại sao bạn cần phải chạy áp dụng kế hoạch mạng khi khởi động lại.

Ngoài ra, một cách đáng tin cậy hơn để bắt đầu một dịch vụ phụ thuộc vào một dịch vụ hoặc điều kiện khác (ví dụ: mạng) là tạo một systemd .dịch vụ để làm công việc đó. Có một số hướng dẫn cho việc này (1, 2), mà tôi khuyên bạn nên xem qua.

lá cờ cn
Và trong trường hợp ai đó muốn biết: chúng tôi đã viết 2 điều này độc lập với nhau và thực sự phần lớn đã viết những điều giống nhau. Làm tôi mỉm cười :-) Tôi không thể là người ủng hộ duy nhất :(
Artur Meinild avatar
lá cờ vn
Vâng đối với tôi cũng vậy - nói chung là cùng một thông điệp, nhưng bao hàm một số sắc thái tinh tế khác nhau. ;-)
SomeDude avatar
lá cờ kr
Oh wow được rồi cảm ơn bạn rất nhiều ... Vấn đề với máy là nó liên tục bị đóng băng sau khoảng 5 ngày hoạt động. Và tôi đã có 3 lần cài đặt mạng bị tắt sau khi khởi động lại và tôi phải đăng ký lại netplan. Vì vậy, tôi nghĩ rằng tôi có thể khởi động lại PC định kỳ vì phần cứng rất có thể không có khả năng chạy 24/7.
terdon avatar
lá cờ cn
@SomeDude có vẻ như bạn đang gặp vấn đề nghiêm trọng ở đâu đó. _Máy tính xách tay_ của tôi có khả năng chạy 24/7, tôi không thể tưởng tượng được phần cứng của bạn lại không thể. Kiểm tra mức sử dụng RAM và trao đổi của bạn hoặc đặt câu hỏi mới và chúng tôi có thể giúp bạn điều tra.
SomeDude avatar
lá cờ kr
@terdon Tôi đã sử dụng [HP Prodesk 600 G3 mini](https://support.hp.com/us-en/document/c05364047) đã ngừng hoạt động với i5-7500T và 8GB DDR4, hiện đã được 4 năm... Tôi có thể đẩy mạnh nó và tạo một máy ảo trên các máy chủ trực tiếp của chúng tôi nhưng với mục đích thử nghiệm, tôi đã sử dụng PC này. Để làm quen với phần mềm và không có gì. Có cách nào dễ dàng để kiểm tra xem đó có phải là sự cố phần cứng không?
Artur Meinild avatar
lá cờ vn
[Ở đây](https://askubuntu.com/questions/1038701/how-do-i-check-system-health) là một chuỗi có một số thông tin về kiểm tra phần cứng. Ngoài ra, hãy thử và tìm kiếm thẻ [kiểm tra phần cứng](https://askubuntu.com/questions/tagged/hardware-test).
Điểm:2
lá cờ in

Tôi đồng ý với mọi thứ trong các câu trả lời khác, nhưng hãy để tôi thêm điều này ...

Thật nguy hiểm khi chạy apt-get không giám sát. Một số ứng dụng đặt câu hỏi trong quá trình nâng cấp và cài đặt bản nâng cấp, và một số ứng dụng khác yêu cầu đầu vào bàn phím nếu bạn đặt chúng ở chế độ nền và sẽ bị treo, mặc dù không cần đầu vào bàn phím.

Cố gắng chạy apt-get trong nền như thế này là một cách hay để kết thúc với một hệ thống mà các bản cập nhật bị hỏng và phải được định cấu hình cũng như tiếp tục lại theo cách thủ công.

Quá trình nâng cấp không giám sát được cho là tự động cài đặt các bản cập nhật quan trọng mà không cần can thiệp.

Nếu máy của bạn gặp sự cố, bạn cần điều tra lý do tại sao. Có lẽ chạy chẩn đoán phần cứng qua đêm. Kiểm tra nhật ký xung quanh thời điểm xảy ra sự cố. Có thể kiểm tra xem có thứ gì đó đang chạy hết bộ nhớ và khiến máy bị treo không. Vân vân...

Ngoài ra, bạn cần phải chạy apt autoremove thỉnh thoảng hoặc các bản cập nhật kernel sẽ thu thập cho đến khi đĩa của bạn đầy.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.