系统信息

系统信息

我有一个 cron 作业,应该每周运行一次updateupgrade并且autocleanapt,但它似乎从来没有工作过,至少据我所知是这样。

这是显而易见的,因为运行sudo apt-get upgrade(添加 cron 作业几周后)显示有软件包可供升级。

系统信息

Linux squire 4.15.0-88-generic #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

计划任务

$ sudo crontab -e

0 12 * * 1 apt-get update && apt-get -y upgrade && apt-get -y autoclean

流程

$ ps -aux | grep cron

root       674  0.0  0.0   4640   768 ?        Ss   Oct14   0:01 /bin/sh /snap/nextcloud/23743/bin/nextcloud-cron
root       757  0.0  0.0  31320  1636 ?        Ss   Jul27   0:17 /usr/sbin/cron -f
squire   22697  0.0  0.0  14428  1000 pts/0    R+   15:25   0:00 grep --color=auto cron

系统服务

● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-07-27 22:15:57 UTC; 2 months 27 days ago
     Docs: man:cron(8)
 Main PID: 757 (cron)
    Tasks: 1 (limit: 2312)
   CGroup: /system.slice/cron.service
           └─757 /usr/sbin/cron -f

Oct 24 14:09:01 squire CRON[15986]: pam_unix(cron:session): session closed for user root
Oct 24 14:17:01 squire CRON[16575]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 24 14:17:01 squire CRON[16576]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Oct 24 14:17:01 squire CRON[16575]: pam_unix(cron:session): session closed for user root
Oct 24 15:03:01 squire cron[757]: (root) RELOAD (crontabs/root)
Oct 24 15:09:01 squire CRON[21350]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 24 15:09:01 squire CRON[21350]: pam_unix(cron:session): session closed for user root
Oct 24 15:17:01 squire CRON[22008]: pam_unix(cron:session): session opened for user root by (uid=0)
Oct 24 15:17:01 squire CRON[22009]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Oct 24 15:17:01 squire CRON[22008]: pam_unix(cron:session): session closed for user root

手动升级

$ sudo apt-get update && sudo apt-get upgrade

Hit:1 http://ppa.launchpad.net/certbot/certbot/ubuntu bionic InRelease
Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Hit:3 https://deb.torproject.org/torproject.org bionic InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu bionic InRelease      
Get:5 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Fetched 252 kB in 1s (178 kB/s)                               
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  base-files linux-generic linux-headers-generic linux-image-generic netplan.io python3-parsedatetime ubuntu-server
The following packages will be upgraded:
  cryptsetup cryptsetup-bin libcryptsetup12 libfreetype6
4 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Need to get 714 kB of archives.
After this operation, 6,144 B of additional disk space will be used.
Do you want to continue? [Y/n] 

更新了 cron 作业以进行输出测试

0 12 * * 1 ( apt-get update && apt-get -y upgrade && apt-get -y autoclean ) >/tmp/apt.cron.log 2>&2

测试日志

Hit:1 http://ppa.launchpad.net/certbot/certbot/ubuntu bionic InRelease
Hit:2 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 https://deb.torproject.org/torproject.org bionic InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu bionic InRelease
Hit:5 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:6 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
The following packages have been kept back:
  base-files linux-generic linux-headers-generic linux-image-generic
  netplan.io python3-parsedatetime ubuntu-server
The following packages will be upgraded:
  cryptsetup cryptsetup-bin libcryptsetup12 libfreetype6
4 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Need to get 714 kB of archives.
After this operation, 6,144 B of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcryptsetup12 amd64 2:2.0.2-1ubuntu1.2 [134 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 cryptsetup-bin amd64 2:2.0.2-1ubuntu1.2 [93.0 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 cryptsetup amd64 2:2.0.2-1ubuntu1.2 [152 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libfreetype6 amd64 2.8.1-2ubuntu2.1 [335 kB]
Fetched 714 kB in 1s (997 kB/s)
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

答案1

我刚刚在日志运行中看到了您的错误消息

dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable

Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

在靠近顶部的地方 - 在你的工作定义之上 - 应该有一两行

SHELL=/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

您实际上并不需要这SHELL条线,但由于基于 Linux 的系统上的大多数其他东西都倾向于与它一起运行,所以bash我推荐它。

如果你没有任何东西,/usr/local你可以将PATH我给你的那行直接删除到前四个目录。但默认情况下cron'sPATH不包括这两个sbin目录,这就是为什么它会出错并找不到命令。

相关内容