我所在的公司在美国各地有几台 Ubuntu 18.04 服务器,它们运行着我们自己的软件。我们的客户每周使用这些设备几天,其余时间都处于闲置状态,并且(通常)处于关闭状态。自发布以来,我们遇到了一个罕见的问题,即一台设备启动时会显示空白屏幕。幸运的是,我们可以远程手动修复这个问题,但这很麻烦。我最终将其归结为这个软件更新脚本:
wget -O /home/user/update.tar.gz.gpg www.website.com/001001002.tar.gz.gpg
gpg --batch --passphrase SecretPassword -o /home/user/update.tar.gz -d /home/user/update.tar.gz.gpg
cp /var/softwareName/etc/config.cfg /home/user/config.backup
rm -r /var/softwareName/bin
rm -r /var/softwareName/etc
rm -r /var/softwareName/setup
rm -r /var/softwareName/static
tar -C /var/softwareName/ -zxvf /home/user/update.tar.gz
cp /home/user/config.backup /var/softwareName/etc/config.cfg
rm /home/user/update.tar.gz.gpg
rm /home/user/update.tar.gz
rm /home/user/config.backup
systemctl restart softwareName.service
systemctl restart kiosk.service
如果安装了更新,然后在约 30 秒内拔下设备的电源线,则“bin”、“etc”、“setup”和“static”目录中的所有文件都将完全清空。所有应该在那里的文件都在那里,但它们只是空的。真正让我感到困惑的是,更新的软件在脚本运行后立即加载,并且运行正常。
我通过一次运行脚本的各个部分进行了一些测试,并且我思考我已经缩小到
tar -C /var/softwareName/ -zxvf /home/user/update.tar.gz
有人知道文件内容是如何被删除的吗?