무인 업그레이드는 어떻게 시작되고 일정은 어떻게 수정됩니까?

무인 업그레이드는 어떻게 시작되고 일정은 어떻게 수정됩니까?

내 debian-jessie에서 누가 무인 업그레이드를 시작했는지 알고 싶습니다:

  1. 내 매뉴얼 페이지

    DESCRIPTION
       This program can download and install security  upgrades  automatically
       and  unattended,  taking care to only install packages from the config‐
       ured APT source, and checking for dpkg prompts about configuration file
       changes. All output is logged to /var/log/unattended-upgrades.log.
       This  script  is  the backend for the APT::Periodic::Unattended-Upgrade
       option and designed to be run from cron (e.g. via /etc/cron.daily/apt).
    
  2. 하지만 내 crontab은 crontab 명령을 통해 아무것도 표시하지 않습니다.

    @stefano:/etc/cron.daily$ crontab -l
    no crontab for stefano
    # crontab -l
    no crontab for root
    
  3. 하지만 무인 업그레이드는 잘 작동합니다! (내 무인 업그레이드 로그 파일):

    2017-02-05 12:42:42,835 INFO Initial blacklisted packages: 
    2017-02-05 12:42:42,866 INFO Initial whitelisted packages: 
    2017-02-05 12:42:42,868 INFO Starting unattended upgrades script
    2017-02-05 12:42:42,870 INFO Allowed origins are: ['o=Debian,n=jessie', 'o=Debian,n=jessie-updates', 'o=Debian,n=jessie-backports', 'origin=Debian,codename=jessie,label=Debian-Security']
    2017-02-05 12:43:15,848 INFO No packages found that can be upgraded unattended

일정을 변경하고 싶은 경우 어디서 확인/수정해야 하나요?

답변1

Debian 9(stretch) 및 Debian 10(buster)의 경우 무인 업그레이드 일정은 두 단계로 결정됩니다.

  1. 시스템 스케줄러(예: systemd 타이머 또는 cron/anacron) 및
  2. APT::주기적인 간격.

하나의 낮은 주파수가 다른 하나의 높은 주파수를 차단하므로 올바르게 설정했는지 확인하세요.둘 다속도.

1. 시스템 스케줄러

프로세스는 다음 두 개의 시스템 타이머에 의해 시작됩니다.

  • apt-daily.timer업데이트 패키지 목록( apt-get update) 및
  • apt-daily-upgrade.timer업그레이드 설치( unattended-upgrade).

(anacron 작업은 /etc/cron.daily/apt-compat여전히 ​​존재하지만 systemd가 감지되면 종료됩니다. systemd를 사용하지 않는 경우 계획 변경에 대한 다른 답변이나 anacron 설명서를 참조하세요.)

업데이트 일정을 수정하려면:

$ sudo systemctl edit apt-daily.timer

예를 들어 다음을 입력 합니다 /etc/systemd/system/apt-daily.timer.d/override.conf.

[Timer]
OnCalendar=
OnCalendar=01:00
RandomizedDelaySec=15m

업그레이드 일정은 동일합니다.

$ sudo systemctl edit apt-daily-upgrade.timer

[Timer]
OnCalendar=
OnCalendar=01:30
RandomizedDelaySec=0

작업 내용을 확인하세요.

$ systemctl cat apt-daily{,-upgrade}.timer
$ systemctl --all list-timers apt-daily{,-upgrade}.timer

(일부 발췌데비안 위키: 무인 업그레이드.)

2. APT::주기적인 간격

systemd 타이머를 사용하든 anacron 작업을 시스템 스케줄러로 사용하든 결국 동일한 스크립트를 호출하게 됩니다. 스크립트는 다시 실행해야 하는지 여부에 대해 새로운 두 번째 결정을 내리지만 이제는 APT::Periodic에 설정된 시간 간격을 기반으로 합니다. 일반적으로 다음에서 이러한 설정을 찾을 수 있습니다 /etc/apt/apt.conf.d/20auto-upgrades.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

나는 항상 "1"여기의 값이 True 또는 On을 의미한다고 생각했지만 실제로는 일 단위로 표현되는 실행 간의 최소 간격입니다. 스크립트가 요청된 작업이 마지막으로 수행된 이후 경과된 시간이 더 적다고 판단하면 간단히아니요시스템 스케줄러에서 요구하는지 여부에 관계없이 이 작업을 수행합니다.

1.5 이상의 apt 버전(Debian 10 Buster)의 경우 APT::Periodic 값을 에서 으로 변경할 수 "1"있습니다 "always". 이 작업을 한 번 수행하면 그 시점부터 시스템 스케줄러(시스템 타이머 또는 anacron)와 상호 작용하여 일정을 변경할 수 있습니다.

위에 대한 자세한 내용을 보거나 하루에 여러 번 실행되도록 무인 업그레이드를 예약하려면 여기에서 내 답변을 확인하세요.매일이 아닌 몇 시간마다 무인 업그레이드를 실행하는 방법.

답변2

일정을 변경하고 싶은 경우 어디서 확인/수정해야 하나요?

자동으로 적용되도록 구성합니다 unattended-upgrades.

이를 확인하려면 /etc/apt/apt.conf.d/20auto-upgrades파일을 확인하면 다음을 얻을 수 있습니다.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

이를 수정하려면 다음 명령을 실행해야 합니다:

dpkg-reconfigure -plow unattended-upgrades 

예제 출력:

 Applying updates on a frequent basis is an important part of keeping 
 systems secure. By default, updates need to be applied manually using
 package management tools.

 Alternatively, you can choose to have this system automatically download 
 and install security updates.                                                                   

     Automatically download and install stable updates?

NO자동 업데이트를 중지 하도록 선택하세요.

다시 확인하면 /etc/apt/apt.conf.d/20auto-upgrades다음과 같은 결과를 얻을 수 있습니다.

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

편집하다

unattended-upgrades주간 편집을 실행하려면 /etc/apt/apt.conf.d/20auto-upgrades:

APT::Periodic::Update-Package-Lists "7";
APT::Periodic::Unattended-Upgrade "1";

자세한 예제는 Debian-Wiki에서 찾을 수 있습니다:/etc/apt/apt.conf.d/02 periodic을 통해 자동으로 호출됩니다.

APT::Periodic::Update-Package-Lists

이 옵션을 사용하면 패키지 목록을 새로 고치는 빈도(일)를 지정할 수 있습니다. apticron 사용자는 apticron이 이미 이 작업을 수행하고 있으므로 이 변수를 사용할 필요가 없습니다.

답변3

/etc/crontab실행 파일이 포함된 폴더를 run-parts /etc/cron.daily참조하는 줄이 있습니다./etc/cron.daily/apt-compatexec /usr/lib/apt/apt.systemd.daily

답변4

anacron시작 unattended-upgrades및 기타 시스템 크론 작업.

cat /etc/anacrontab 
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1   5   cron.daily  run-parts --report /etc/cron.daily
7   10  cron.weekly run-parts --report /etc/cron.weekly
@monthly    15  cron.monthly    run-parts --report /etc/cron.monthly

관련 정보