Lucrez pentru o companie care are mai multe unități de server Ubuntu 18.04 împrăștiate în SUA care rulează propriul nostru software. Unitățile sunt folosite de clienții noștri câteva zile pe săptămână, iar restul timpului stau inactiv și (în mod normal) sunt oprite. De la lansare, ne-am confruntat cu această problemă rară în care o unitate va porni până la un ecran gol. Din fericire, putem remedia acest lucru manual de la distanță, dar a fost o pacoste. În cele din urmă, l-am urmărit până la acest script de actualizare software:
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 reporniți softwareName.service
systemctl reporniți kiosk.service
Dacă este instalată o actualizare și apoi cablul de alimentare este tras de unitate în aproximativ 30 de secunde, toate fișierele din directoarele „bin”, „etc”, „setup” și „static” sunt complet goale. Toate fișierele care ar trebui să fie acolo sunt acolo, sunt doar goale.
Ceea ce mă face cu adevărat confuz pentru mine este că software-ul actualizat se încarcă imediat după rularea scriptului și funcționează bine.
Am făcut câteva teste rulând secțiuni individuale ale scriptului la un moment dat și eu gândi L-am restrâns la
tar -C /var/softwareName/ -zxvf /home/user/update.tar.gz
Are cineva idee cum se elimină conținutul fișierelor?