如何将输出记录apt-get upgrade
到.txt
文件中?我阅读了手册页,-q
选项中提到了格式化输出以进行记录。
我之所以问这个问题是因为我想自动执行更新过程。具体来说,我想将其添加apt-get update && apt-get upgrade -y
到 root crontab 中。我想记录输出,以便以后查看。
另外,这会引起什么问题吗?让系统在用户不查看更改的情况下升级软件包是不是一个坏主意?
答案1
这些日志已经自动生成。
您可以在 中查看文件/var/log/apt
。
有一个history.log
记录所有执行的apt
命令,如下所示:
Start-Date: 2016-07-06 14:29:04
Commandline: apt upgrade
Requested-By: bytecommander (1000)
Upgrade: tzdata:amd64 (2016d-0ubuntu0.16.04, 2016f-0ubuntu0.16.04)
End-Date: 2016-07-06 14:29:06
term.log
另一方面,该文件记录这些命令的精确终端输出,如下所示:
Log started: 2016-07-06 14:29:04
(Reading database ... ^M(Reading database ... 5%^M(Reading database ... 10%^M(Reading database ... 15%^M(Reading database ... 20%^M(Reading database ... 25%^M(Reading database ... 30%^M(Reading database ... 35%^M(Reading database ... 40%^M(Reading database ... 45%^M(Reading database ... 50%^M(Reading database ... 55%^M(Reading database ... 60%^M(Reading database ... 65%^M(Reading database ... 70%^M(Reading database ... 75%^M(Reading database ... 80%^M(Reading database ... 85%^M(Reading database ... 90%^M(Reading database ... 95%^M(Reading database ... 100%^M(Reading database ... 302987 files and directories currently installed.)
Preparing to unpack .../tzdata_2016f-0ubuntu0.16.04_all.deb ...
Unpacking tzdata (2016f-0ubuntu0.16.04) over (2016d-0ubuntu0.16.04) ...
Setting up tzdata (2016f-0ubuntu0.16.04) ...
Current default time zone: 'Europe/Berlin'
Local time is now: Mi 6. Jul 14:29:06 CEST 2016.
Universal Time is now: Wed Jul 6 12:29:06 UTC 2016.
Run 'dpkg-reconfigure tzdata' if you wish to change it.
Log ended: 2016-07-06 14:29:06
请注意,日志会自动轮换。较旧的日志将被压缩并存储为例如history.log.1.gz
。
但是,如果您想手动记录它们(包括命令apt update
),则可以使用 Bash 的输出重定向语法:
( date && apt-get -q update && apt-get -qy upgrade ) &>> /var/log/apt/mylog
这将重定向 和 的输出(STDOUT 和 STDERR)date
并将其apt-get -q update
附加apt-get -qy upgrade
到文件/var/log/apt/mylog
。当然,您也可以选择其他文件名和位置。