Comment faire en CLI vérifier que les mises à jour se produisent toutes les 4 semaines et les installer automatiquement sans aller aux sources logicielles?

10

J'ai un ensemble de commandes personnalisées que j'exécute sur mes ordinateurs après les avoir installés. Comment puis-je faire Ubuntu vérifier les mises à jour toutes les 4 semaines et les installer automatiquement lors de la vérification?

J'aurais besoin que cela soit fait via la ligne de commande afin que je puisse le configurer pour les utilisateurs habituels lorsque je configure leurs ordinateurs.

La première commande fera vérifier par le gestionnaire de mise à jour les mises à jour toutes les 2 semaines car elles ne viennent pas toujours autant et pour économiser la bande passante des serveurs Ubuntu.

Je dois également le configurer pour que les utilisateurs n'aient pas besoin de cliquer pour installer les mises à jour, car c'est fatiguant chaque fois que j'aide un ami à configurer un ordinateur.

Kangourou
la source

Réponses:

10

Tout d'abord, activez les mises à jour automatiques comme celle-ci:

sudo apt-get install unattended-upgrades

Vous devez ensuite modifier sa configuration, tapez

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

(remplacez-le nanopar votre éditeur de texte préféré si vous le souhaitez)

Le fichier ressemble à ceci:

Unattended-Upgrade::Allowed-Origins {
        "Ubuntu maverick-security";
//      "Ubuntu maverick-updates";
};

Le //moyen de cette ligne est un commentaire et ne sera pas examiné par le programme, retirez les coups pour inclure les mises à jour de la version stable en plus des correctifs de sécurité. Remplacez également maverickpar la version d'Ubuntu que vous utilisez.

Pour définir l'intervalle auquel le système recherche les mises à jour, modifiez le /etc/apt/apt.conf.d/10periodicfichier avec un éditeur de texte:

APT::Periodic::Update-Package-Lists "14";
APT::Periodic::Download-Upgradeable-Packages "14";
APT::Periodic::AutocleanInterval "14";
APT::Periodic::Unattended-Upgrade "14";

Dans cet exemple, le système est mis à jour toutes les deux semaines.

Pour une explication plus détaillée, voir Mises à jour automatiques dans le guide du serveur Ubuntu.


Notez que la réponse de papukaija parle de l'intervalle auquel la boîte de dialogue Update Manager apparaît sur votre écran, je suppose que ce n'est pas ce que vous ne voulez pas, mais je ne suis pas sûr. :)

Stefano Palazzo
la source
Les dialogues n'étaient pas nécessaires pour apparaître et cela ne va pas sur 1 ligne. Si j'ai défini dans les sources de logiciel 2 semaines à vérifier, est-il possible que la boîte de dialogue de mise à jour apparaisse plus tôt ou plus tard? Nécessaire, c'est qu'avec 1 ligne, il serait possible de configurer que l'utilisateur ne sache même pas qu'il a un système mis à jour toutes les 4 semaines et qu'il n'a pas besoin de voir les mises à jour demandées et automatiquement, il vient d'être installé. Je n'ai donc pas besoin de régler cela manuellement avec la souris dans les sources logicielles.
Kangarooo
Je ne suis pas sûr de te comprendre. Vous pouvez désactiver les notifications de mise à jour en allant dans Système → Préférences → Applications de démarrage et en supprimant la coche dans "Update Notifier". C'est ce que vous vouliez dire? En outre, bien sûr, vous pouvez le définir sur "30" au lieu de "14" jours (ou tout montant que vous souhaitez)
Stefano Palazzo
Et cela peut aussi se faire avec une seule ligne? Si oui c'est aussi bon à faire sinon - ce n'est pas la chose principale que je voulais. L'essentiel est de surmonter le passage aux paramètres des sources logicielles pour modifier la vérification des mises à jour et ce qu'il faut faire. Je veux vérifier tous les 28 jours et installer les mises à jour sans rien demander dans le terminal, donc c'est plus rapide.
Kangarooo
Une commande de ligne dans ma réponse: apt-get update && apt-get upgrade -y
luri
@luri ce n'est pas le sujet de cette question
Stefano Palazzo
2

Si vous voulez dire mettre à jour tout "pouvant être mis à jour", c'est-à-dire mettre à jour TOUS vos packages, je suppose que vous pouvez créer un cron (dans le cron racine) que tous les 28 jours apt-get update && apt-get upgrade -y.

Certaines personnes ont des problèmes avec les emplois secondaires en raison d'un PATHcadre restrictif . Si vous avez un problème, vous pouvez définir votre tout PATHau début du crontab -efichier (comme suggéré dans CronHowto )

De plus, pour vérifier que tout se passe bien, je consignerais les résultats, comme ceci:

root@PORTATIL:/var/log$ crontab -l
* * */2 * * /usr/share/myupdate.sh > /var/log/myupdate.log

myupdate.sh pourrait être aussi simple que cela:

#!/bin/bash
#Testing updates
echo "$(date) Crond myupdate sarting."
apt-get update -y
apt-get upgrade -y
echo "$(date)Crond myupdate finished."
luri
la source
Ça ne marche pas pour moi. Quand je reçois mes journaux cron, je me aptitude -y safe-upgradeplains d'avoir besoin d'un tty de contrôle, puis d'un tas d'erreurs de chemin. Je devrais peut-être faire une question ..
djeikyb
L'avez-vous placé dans le cron racine?
luri
Oui. Il échouait à cause de différents problèmes de chemin, j'ai donc créé un script dans / root / bin, avec #! / Bin / bash et le chemin complet vers apt-get. Cela fonctionne mieux, mais il n'est toujours pas mis à niveau.
djeikyb
Afficher les erreurs dans le journal .... ou tout ce qui échoue
luri
J'ai fait une question distincte: askubuntu.com/q/23795/8515
djeikyb
1

Vous pouvez modifier l'intervalle entre le moment où le gestionnaire de mise à jour est exécuté en ouvrant gconf-editor (par exemple avec Alt + F2 et en tapant gconf-editor). Puis localisez /apps/update-notifier.

L'intervalle est défini dans la clé regular_auto_launch_intervaloù la valeur est le nombre de jours. Je pense que cette méthode n'affecte pas le programme de mise à jour automatique non graphique (mises à niveau sans assistance).

Veuillez noter qu'Ubuntu peut ne pas installer automatiquement les mises à jour de sécurité en raison d'un bogue .

papukaija
la source
4
Voici la version en ligne de commande de cette réponse: gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 7(où 7 est l'intervalle en jours)
Stefano Palazzo
Je viens de vérifier qu'il était déjà 7. Mais dans les sources logicielles, il est réglé sur 2 semaines. Peut-être que c'est ailleurs?
Kangarooo
0

Je mets gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 1et son ouverture tous les jours montrant que je n'ai pas installé de mises à jour. S'ouvre-t-il s'il n'y a pas de nouvelles mises à jour? Alors, faire une mise à jour automatique toutes les 4 semaines ne ferait pas apparaître ce message? Alors, comment faire avec CLI pour installer automatiquement les mises à jour à chaque vérification toutes les 4 semaines? C'est ce que je veux. En n'allant pas aux sources logicielles et en le faisant avec la souris. Et ce faisant, son possible couse, il ne peut pas y être mis plus de 2 semaines.

Kangourou
la source