Docker 用于自动执行timeshift备份和azuracast更新的脚本

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键即

我正在Linode上运行Azuracast docker实例,希望找到一种自动更新的方法。现在我的例行程序是,当我通过访问Azuracast web面板发现有更新时,我通常运行timeshift,使用以下命令创建备份

timeshift--创建--注释“azuracast更新”

然后我使用下面的更新azuracast

cd/var/azuracast/ ./docker.sh更新self /docker.sh更新

然后它要求我在更新之前确保azuracast安装已备份,我通常只需按enter键即可

完成后,它会问我是否要清理所有停止的docker容器和图像以节省空间,我通常会说不


我想知道的是,是否有一种方法可以创建一个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%最新