我已经按照以下方法安装了 apt-mirror本指南但随着时间的流逝,我做了一些细微的改变,这让我不确定如何通过 来安排这件事的最后一步cron
。
我决定将下载的文件放在文件夹结构中,/var/mirror/...
因为这里有足够的空间,并且我将 apt-mirror 配置更改如下:
set base_path /var/mirror
set mirror_path $base_path/www
set var_path $base_path/var
set skel_path $base_path/skel
set postmirror_script $var_path/postmirror.sh
如果我运行sudo apt-mirror
它就会开始下载(40Gb,白天不可能),所以想让它在夜间运行。
该文件/etc/cron.d/apt-mirror
包含:
30 01 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
这就是我需要帮助的地方。如果我运行sudo apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
它,它会因配置错误而退出:
apt-mirror: invalid line in config file (3: =pod ...) at /usr/bin/apt-mirror line 297, <CONFIG> line 3.
我认为这是因为它试图用作/usr/bin/apt-mirror
配置文件(无法apt-mirror --help
工作,并且它给了我类似的错误!)阅读其他文档和指南,似乎是/usr/bin/apt-mirror
为了设置下载文件的目标位置,但这不是我想要的。我尝试将其更改为,/var/mirror/www
但它仍然给了我配置错误。
因此,有人可以帮助我了解命令 withincron
实际上是在做什么,以便我可以进行适当的格式化,或者有人可以确认我是否可以只使用apt-mirror
within ,cron
因为它似乎可以在命令行中工作?
答案1
我遇到了同样的问题,经过几次尝试和错误后,我发现我有 2 个用于 apt 镜像的 cron 计划。
第一个出现错误的是用户“apt-mirror”的 crontab @1900h(邮件时间),第二个没有出现任何错误,位于 /etc/cron.d/apt-mirror @0400h。在我禁用 1900h 作业“crontab -u apt-mirror -e”后,错误消失了。
希望这对其他人有帮助。
顺便说一下,/etc/cron.d/apt-mirror 文件中的语法与 crontab 文件中的语法略有不同
/usr/bin/apt-mirror
是 apt-mirror 脚本本身和
apt-mirror
在脚本是用户名之前,cron 必须以模拟身份运行脚本
30 01 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
我认为这是因为它试图使用 /usr/bin/apt-mirror 作为配置文件