저는 Arch Linux를 처음 접했고 여전히 일부 패러다임에 익숙해지고 있습니다. 저는 좀 더 구조화되고 어떤 면에서는 예측 가능한 다른 배포판으로부터 많은 습관을 물려받았습니다.
일부 시스템에서 제가 하고 싶은 한 가지는 cron 작업을 활성화하여 모든 시스템 패키지를 자동으로 업데이트하는 것입니다. 이것은 쉬워 보이지만 시스템이 상황이 어떻게 진행되고 있는지에 대한 의미 있는 피드백을 제공하기를 원합니다. 하지만 시스템에 문제가 있다는 것을 알아차릴 때까지 결국 무시하게 될 정도로 장황해서는 안 됩니다.
- 전체 출력
pacman
은 필요하지 않습니다. 다운로드하는 데 시간이 얼마나 걸렸는지, 업데이트 46 중 53이었는지는 중요하지 않습니다. - 대부분 나는 성공에 관심이 없습니다.
- 나는 오류에 관심이 있습니다. 업데이트 실행이 실패하고 특정 오류 메시지를 패치해야 하는지 알고 싶습니다.
나는 설치 과정에서 만들어진 "알림"에 관심이 있습니다. 예를 들어 오늘의 systemd 업데이트에서는 다음과 같이 말합니다.
:: coredumps are no longer sent to the journal by default. To re-enable: echo >/etc/sysctl.d/50-coredump.conf \ "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"
또는 파일 시스템이 다음을 생성했습니다.
warning: /etc/group installed as /etc/group.pacnew warning: /etc/passwd installed as /etc/passwd.pacnew warning: /etc/shadow installed as /etc/shadow.pacnew
마지막 카테고리는 실제로 전체 패키지 세트에서 매우 일관성이 없는 것처럼 보이기 때문에 이 질문을 하게 되었습니다. 그 중 일부는 에 의해 생성되고
post_upgrade()
다른 일부는 에 의해 생성되는 것 같습니다install()
. 때로는 stdout에 기록되고 때로는 stderr에 기록됩니다. 메시지의 형식은 매우 다양합니다. 전체 블록 앞에 어떤 방식으로든 들여쓰기가 붙는 경우도 있고, 단순한 에코 문자열만 있는 경우도 있습니다.
방해받지 않고 시스템에 개입해야 하는 사항에 대해 배우고 싶습니다. 이 데이터를 지능적으로 관리하고 시스템 관리를 단순화할 수 있는 도구가 있습니까? 패키지를 설치하는 팩맨 프로세스에서 패키지에 의해 생성된 출력을 분리할 수 있는 방법이 있습니까? 아니면 설치 로그에서 무해한 콘텐츠를 필터링하기 위해 일종의 파서를 직접 작성해야 합니까?
1 이것이 얼마나 어리석은 일인지 뛰어넘기 전에, 나는 프로덕션 서버에서 이 작업을 수행하지 않을 만큼 똑똑하고 재해 발생 시 스냅샷을 기반으로 전체 시스템 백업 없이도 쉽게 복구할 수 있다는 점을 참고하시기 바랍니다.
답변1
귀하와 이 문제가 발생할 수 있는 다른 모든 사람을 위해 이 점을 명확히 하고 싶습니다. 당신이 하고 싶은 일은아니요가능한. 아치는 자신이 기대하는 사실을 비밀로 하지 않습니다.너시스템을 관리하세요. 해당 책임의 일부는 업데이트 주기 중에 존재합니다.
있다속도업데이트 프로세스를 책임감 있게 자동화할 수 있지만 결코 자동화되지는 않습니다 -Syu
. 거기서 업그레이드하면 됩니다.
cron
예를 들어, 설치해야 하는 패키지를 다운로드하도록(설치하지는 않음) 작업을 설정하는 것이 가능합니다 . 다음은 pacman
문서에서 발췌한 내용 입니다 .
SYNC OPTIONS ... -w --downloadonly Retrieve all packages from the server, but do not install/upgrade anything.
cron
그런 다음 실행할 작업을 설정할 수 있습니다 sudo pacman -Syuw
. 나는 cron
스케줄링 기능 에 대해 잘 알지 못합니다 . 그러나 특정 조건이 충족되는 경우에만 작업을 실행할 수 있다면(예: 명령이 특정 값을 반환하는 경우) 요청 시 새 패키지 다운로드를 트리거하는 것이 매우 간단할 것입니다.
checkupdates | wc -l
예를 들어 . 0보다 큰 숫자를 반환하면 다운로드를 트리거할 수 있습니다. 그러나 이는 -Syu
귀하가 존재하고 이를 처리할 준비가 되어 있을 때 업그레이드 실행을 대체하지 않습니다.
업그레이드 중에 발생한 결과를 어디서 얻을 수 있는지에 대한 질문의 마지막 부분에는 /var/log/pacman.log
관심이 있을 수 있는 오류 메시지가 포함되어 있습니다.
가지다도구pacman
낯선 사용자에게 좀 더 친근하게 다가갈 수 있도록 하기 위함입니다 . 제 기억이 맞다면 수동 개입이 필요한 업데이트가 있는 경우 뉴스 항목에 대한 알림도 제공됩니다.
이 도구는 단기적으로는 여러분의 삶을 더 쉽게 만들어 줄 수 있지만 메일링 리스트를 현명하고 부지런히 따르는 것을 결코 대체할 수는 없습니다.
답변2
정말 좋은 일을 하는 오래된 스크립트가 있습니다.안전한 포장.
편집: 스크립트는 github에서 계속 사용할 수 있습니다. https://github.com/bencahill/binfiles/blob/master/safepac
그것은 무엇을 하고 어떻게 작동합니까?
제가 보통 아치를 업데이트하는 방식은 뉴스를 보고 나서 업데이트하거나
pacman -Syu
, 그냥 하고pacman -Syu
나서 문제가 생기면 뉴스를 보는 것입니다. 이제 이 스크립트는 아무 작업도 하지 않습니다. RSS 피드에서 최신 뉴스 항목을 가져오고, 몇 가지sed
마법을 수행하고, 모든 패키지의 이름을 사용 가능한 뉴스 업데이트와 비교합니다. 뉴스의 "패키지 이름" 및 "패키지 이름-"과 일치하며, 패키지 이름이 뉴스 어딘가에 나타나면 해당 패키지를 무시하고 다른 모든 패키지만 업데이트합니다. 이렇게 하면 문제를 수동으로 확인할 시간이 생길 때까지 잘못될 수 있는 모든 작업이 연기되고, 중요하지 않은 업데이트는 자동으로 수행됩니다!
safepac
제대로 진행되지 않은 업데이트를 처리한 후에도 여전히 뉴스에 있다는 이유로 패키지를 무시하고 싶지 않은 경우가 많습니다 . 이것이 무시 목록의 목적입니다. 따라서 수동으로 업데이트할 때마다 다음을 사용하여 해당 뉴스 항목을 무시 목록에 추가할 수 있습니다.safepac -Ia xxx
xxx
뉴스 항목의 번호입니다. 또한 이 스위치를 사용하여 구문 분석에 포함할 최근 뉴스 수를 지정할 수도 있습니다-n
. 또한 스크립트는 존재하지 않는 항목을 건너뛸 만큼 똑똑합니다. 뉴스에 임의로 나타날 수 있는 매우 짧은 이름(예: "예")을 가진 패키지에 문제가 있는 경우 해당 패키지를 화이트리스트에 추가하여safepac -Wa
뉴스에 나타나더라도 항상 설치되도록 할 수 있습니다.
이 스크립트는 요약 메일(전체 로그 포함)과 업데이트의 중요한 부분도 보내므로 유효한 메일 설정이 필요합니다.
출력을 구문 분석하여
pacman
다음 단어를 찾아 요약에 추가합니다.
"note" "pacnew" "error" "important" "warning" "exists".
스크립트는 오래되었지만 아이디어는 좋으며 아마도 사소한 업데이트(있는 경우)로도 계속 작동할 것입니다.
답변3
나는 내 것을 사용한다~까지yaourt
크론으로 실행합니다.