Docker 用于自动执行timeshift备份和azuracast更新的脚本
我正在Linode上运行Azuracast docker实例,希望找到一种自动更新的方法。现在我的例行程序是,当我通过访问Azuracast web面板发现有更新时,我通常运行timeshift,使用以下命令创建备份 timeshift--创建--注释“azuracast更新” 然后我使用下面的更新azuracast cd/var/azuracast/ ./docker.sh更新self /docker.sh更新 然后它要求我在更新之前确保azuracast安装已备份,我通常只需按enter键即可 完成后,它会问我是否要清理所有停止的docker容器和图像以节省空间,我通常会说不Docker 用于自动执行timeshift备份和azuracast更新的脚本,docker,scripting,Docker,Scripting,我正在Linode上运行Azuracast docker实例,希望找到一种自动更新的方法。现在我的例行程序是,当我通过访问Azuracast web面板发现有更新时,我通常运行timeshift,使用以下命令创建备份 timeshift--创建--注释“azuracast更新” 然后我使用下面的更新azuracast cd/var/azuracast/ ./docker.sh更新self /docker.sh更新 然后它要求我在更新之前确保azuracast安装已备份,我通常只需按enter键即
我想知道的是,是否有一种方法可以创建一个bash脚本,或者python或其他东西来自动化所有这些,然后让它按计划运行?当然,您可以编写一个shell脚本来执行这些命令,然后使用 例如,您的脚本可能如下所示:
#! /bin/sh
# Backup azuracast and restart docker container
timeshift --create --comment “azuracast update” && \
cd /var/azuracast/ && \
./docker.sh update-self && \
(yes | ./docker.sh update)
听起来像是这样的docker.sh
程序需要一些用户输入。查看是否有可以传递给它的选项允许您以非交互方式运行它。(似乎没有,请参见编辑。)
要设置cron作业,可以将脚本放入/etc/cron.hourly
、/etc/cron.daily
、/etc/cron.weekly
或/etc/cron.monthly
。或者,如果需要更多的控制,可以开始使用crontab-e
配置cron作业
编辑:假设您正在使用,它似乎无法以非交互方式运行update
。不过不用担心,有一个程序可以解决这个问题:。这两个问题的答案都是肯定的,但是诚实地运行docker系统prune-f
可能是个好主意。如果你真的想回答“否”,你可以用yes
代替printf“y\nn”
来回答第一个是,第二个否
还请注意,它可能会问您一个y/n问题,您可能想回答“是”。了不起的朋友。谢谢你的帮助。运行了你提出的脚本,它工作得非常完美。现在我可以确保我的服务器保持100%最新