====== Update en python ======
script python pour mise à jour de raspi OS
#!/usr/bin/env python3
# coding=UTF-8
# Information de version
# ----------------------------------------------------------------------------
Minor_Version = "005"
Major_Version = "1"
Date_version = "29/09/2021"
NomScript = "update"
# ----------------------------------------------------------------------------
# import des modules
# ----------------------------------------------------------------------------
import sys
import os
import time
import subprocess
SEP="------------------------------------------------------------------------------\n"
DIR='/home/pi/scripts/logs/'
# ----------------------------------------------------------------------------
# procédure config
# ----------------------------------------------------------------------------
def config():
global LOG
LOG = "%s%s.log" % (DIR,NomScript)
DateFR = time.strftime('%d/%m/%Y %H:%M:%S')
txt = "Update du %s\n%s" % (DateFR,SEP)
fichier = open(LOG, "w")
fichier.write(txt)
fichier.close()
os.chmod(LOG, 0o666)
# ----------------------------------------------------------------------------
# procédure Log
# ----------------------------------------------------------------------------
def Logs(txt):
fichier = open(LOG, "a")
fichier.write(txt)
fichier.close()
# ----------------------------------------------------------------------------
# procédure update
# ----------------------------------------------------------------------------
def execute(cmd):
var = subprocess.getoutput(cmd)
return var
# ----------------------------------------------------------------------------
# procédure eeprom
# ----------------------------------------------------------------------------
def eeprom():
var = execute('sudo rpi-eeprom-update')
return var
# ----------------------------------------------------------------------------
# procédure clean
# ----------------------------------------------------------------------------
def clean():
print("Clean")
var = execute('sudo apt clean')
print (var)
var = execute('sudo apt-get autoremove -y')
print (var)
# ----------------------------------------------------------------------------
# procédure upgrade
# ----------------------------------------------------------------------------
def upgrade():
print("upgrade")
var = execute('sudo apt full-upgrade -y | grep -P "\d\K mis à jour"')
liste = var.split("\n")
nb = len(liste)
ret = liste[nb-1].split(".")
return (ret[0])
# ----------------------------------------------------------------------------
# procédure update
# ----------------------------------------------------------------------------
def update():
var = execute("sudo apt update")
liste = var.split("\n")
nb = len(liste)
ret = liste[nb-1].split(".")
return (ret[0])
# ----------------------------------------------------------------------------
# Procédure main
# ----------------------------------------------------------------------------
def main():
debut = time.time()
config()
ret = update()
Logs("%s\n" % (ret))
fini = ret.find('Tous les paquets')
if fini<0:
ret = upgrade()
Logs("%s\n" % (ret))
clean()
txt = "%s%s\n%s" % (SEP,eeprom(),SEP)
Logs(txt)
duree = time.time()- debut
minutes = time.localtime(duree)[4]
secondes = time.localtime(duree)[5]
text = "Durée: %i min %i sec\n" %(minutes,secondes)
Logs(text)
# ----------------------------------------------------------------------------
# début du script
# ----------------------------------------------------------------------------
if __name__ == "__main__":
main()
Puis rendre le script executable.\\
Et entrer dans un terminal la commande //**/chemin/update.py**// et voici le résultat:\\
Update du 26/02/2022 12:46:57
------------------------------------------------------------------------------
Tous les paquets sont à jour
------------------------------------------------------------------------------
BOOTLOADER: up to date
CURRENT: mar 08 fév 2022 17:24:46 UTC (1644341086)
LATEST: mar 08 fév 2022 17:24:46 UTC (1644341086)
RELEASE: stable (/lib/firmware/raspberrypi/bootloader/stable)
Use raspi-config to change the release.
VL805_FW: Dedicated VL805 EEPROM
VL805: up to date
CURRENT: 000138a1
LATEST: 000138a1
------------------------------------------------------------------------------
Durée: 0 min 10 sec
et voici la ligne de crontab pour executer le script toutes les nuits à 4 heure 30:
30 4 * * * /home/pi/scripts/py/update.py
{{counter}}