Groupe d'Utilisateurs de GNU/Linux du 77 Index du Forum

Groupe d'Utilisateurs de GNU/Linux du 77
Forum du Groupe d'Utilisateurs de GNU/Linux en Seine-et-Marne

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Mon premier script en Bash

 
Poster un nouveau sujet   Répondre au sujet    Groupe d'Utilisateurs de GNU/Linux du 77 Index du Forum -> Général -> Vos astuces
Sujet précédent :: Sujet suivant  
Auteur Message
Koshie
Administrateur

Hors ligne

Inscrit le: 26 Juil 2009
Messages: 178
Localisation: Torcy

MessagePosté le: Sam 1 Aoû - 17:46 (2009)    Sujet du message: Mon premier script en Bash Répondre en citant

Bonsoir les geeks,

J'ai crée un petit script Bash, celui là :

Citation:


!/bin/sh

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Ce script est conçu pour les distributions Debian et Ubuntu.
#
# Si vous avez l'habitude d'utiliser apt-get et Synaptic vous devriez changer
# les commandes par les commandes apt-get appropriés.
#
# N'oubliez pas de changer l'utilisateur pour la commande servant à
# vider la corbeille.
#
# Vous devez rendre exécutable ce fichier avec (en root) la commande
# chmod 775.
#
# Si vous souhaitez désactiver une des commandes il vous suffit de la
# commenter en écrivant un '#' au début de la ligne.
#
# Je vous conseil d'utiliser crontab pour rendre automatique l'exécution
# de ce script.
#
# Si vous avez une question, vous pouvez me contacter à :
# kevin [point] gaspard [at] gmail [point] com

echo '----------Mise à jour du système----------'
# Essaye témérairement de résoudre les dépendances des paquets cassés.
/usr/bin/aptitude -f
# Met à jour la liste des paquets disponibles sur les serveurs maîtres.
/usr/bin/aptitude update
# Met à jour les logiciels installés dans leur version la plus récente. L'option -y permet de se passer d'une question.
/usr/bin/aptitude -y full-upgrade
echo '----------Nettoyage du système----------'
# Purge les paquets dont aucun autre paquet installé ne dépend.
/usr/bin/aptitude --purge-unused
# Supprime tous les paquets .deb téléchargés et enregistrés dans le répertoire cache (normalement /var/cache/apt/archives).
/usr/bin/aptitude clean
# Supprime tout paquet enregistré dans le cache et qui n´est plus proposé au téléchargement.
/usr/bin/aptitude autoclean
echo '----------Suppression du contenue de la corbeille----------'
# Supprime les dossiers et fichiers de la corbeille de l'utilisateur "koshie".
rm -r -f ~koshie/.local/share/Trash/files/*




J'ai configuré crontab pour qu'il le lance tous les soirs à 20h00 précise (comme je suis généralement connecté à cette heure-là). Pour ceux qui ont des questions j'ai pas fais les commentaires pour les chiens ^^ ! Il est tout simple mais je l'ai fais avant tous pour m'entraîner et pour ne plus m'occuper des mises à jours, de la corbeille et économiser de la place (même si c'est pas ça qui manque sur 300GO !

Pour crontab tapez en root :

Citation:


crontab -e



Et rajoutez-y la ligne suivante :

Citation:


00 20 * * * sh -c '/usr/bin/clean.sh >> /tmp/majsyst.txt'



La deuxième partie sert de vérification, regardez de temps en temps pour voir si y'a eu des erreurs etc...

Je réfléchit pour qu'il écrive dans un fichier de ce genre la date et qu'il efface le résultat le plus ancien tous les 30 jours, afin de garder un fichier pas trop long et pas trop gros.

PS : Si vous voulez l'utiliser faite attention, j'utilise aptitude et pas apt, les utilisateurs d'apt risque d'avoir des conflits avec aptitude alors veuillez à cherchez les équivalent et à modifier le script (je crois que je vais faire ça), pour la corbeille remplacez koshie par le nom de votre utilisateur.

N'oubliez pas de faire un chmod 775 sur ce script bash (en root) pour autoriser son exécution.

Si vous avez des idées, remarques, plainte... J'ai un alibi !

Koshicalement
_________________
Merci de lire et d'approuver le règlement
Mon ordinateur compatible GNU/Linux et où je l'ai acheté, chapeau bas à Renzo !


Revenir en haut
Visiter le site web du posteur GTalk/Jabber
Publicité






MessagePosté le: Sam 1 Aoû - 17:46 (2009)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Zergy


Hors ligne

Inscrit le: 05 Aoû 2009
Messages: 12
Localisation: Le Pré Saint-Gervais

MessagePosté le: Mer 5 Aoû - 15:04 (2009)    Sujet du message: Mon premier script en Bash Répondre en citant

 A partir de ton script, j'en ai tiré un autre (il ne fait que la mise à jour)

Code:



#!/bin/sh

#################################################################################
#                                                                               #
# LICENCE :                                                                     #
#                                                                               #
# This program is free software: you can redistribute it and/or modify it under #
# the terms of the GNU General Public License as published by the Free Software #
# Foundation, either version 3 of the License, or (at your option) any later    #
# version.                                                                      #
#                                                                               #
# This program is distributed in the hope that it will be useful, but WITHOUT   #
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.#
#                                                                               #
# You should have received a copy of the GNU General Public License along with  #
# this program.  If not, see <http://www.gnu.org/licenses/>.                    #
#                                                                               #
#################################################################################

#################################################################################
#                                                                               #
# DESCRIPTION :                                                                 #
#                                                                               #
# Ce script est conçu pour les distributions Debian et Ubuntu.                  #
#                                                                               #
# Si vous avez l'habitude d'utiliser apt-get et Synaptic vous devriez changer   #
# les commandes par les commandes apt-get appropriés.                           #
# Vous devez rendre exécutable ce fichier avec (en root) la commande chmod 750. #
#                                                                               #
# D'après un script de : Koshie (kevin [point] gaspard [at] gmail [point] com)  #
#                                                                               #
# AUTEURS :                                                                     #
# - Koshie (kevin [point] gaspard [at] gmail [point] com)                       #
# - Zergy (zerg [point] killer [at] gmail [point] com)                          #
#                                                                               #
#################################################################################

## Variables
APT_BIN="/usr/bin/aptitude"; # Binaires de Aptitude, à modifier par apt à votre convenance
LOG="/var/log/majsys.log"; # Emplacement des logs
DATE=$(date +%Y%m%d); # Horodatage

## Mise en place des log
function createLog () {
    if [ $LOG -f ]
    then
        touch $LOG;
        chown root:adm $LOG;
        chmod 640 $LOG;
    fi
}

## Préparation du système
# On vérifie que aucun paquets ne pose de conflit et on essaye de le résoudre si tel est le cas.
function chkConflict () {
    $APT_BIN -f 1>/dev/null 2>$LOG;

#    if [ $? -eq ]
#    then
#        echo -e "##### Impossible de résoudre les conflis automatiquement, abandon #####" >> $LOG;
#        exit 1;
#    else
        chkUpdate;
#    fi

## BUG ##
# Manque le signal de sortie de aptitude en cas d'échec de résolution de conflit.
}

## Vérification des mises à jours
# On vérifie la présence de mise à jour, s'il y en a, le script continue.
function chkUpdate () {
    $APT_BIN update 1>/dev/null 2>$LOG;

    if [ $? -eq 255 ]
    then
        echo -e "##### Aucune mise à jours à installer #####" >> $LOG;
        exit 2;
    else
        installUpdate;
    fi
}

## Installation des mises à jours
# Met à jour les logiciels installés dans leur version la plus récente. L'option -y permet de se passer d'une question.
# Vérifier si un dist-upgrade ne peut pas également fonctionner.
function chkUpdate () {
    $APT_BIN -y full-upgrade 1>/dev/null 2>$LOG;

    if [ ! $? -eq 0 ]
    then
        echo -e "##### Problème lors des mises à jour, abandon #####" >> $LOG;
        exit 3;
    else
        cleanUpdate;
    fi
}

## Nettoyage du gestionnaire de paquet
# Si les action précédentes se sont bien déroulée on nettoye les données inutiles (paquets obsolète, cche APT)
function cleanUpdate () {
    $APT_BIN --purge-unused purge ~g 1>/dev/null 2>$LOG;

    if [ ! $? -eq 0 ]
    then
        echo -e "##### Problème lors de la désinstallation des obsolètes, abandon #####" >> $LOG;
        exit 4;
    else
        $APT_BIN clean 1>/dev/null 2>$LOG;
        $APT_BIN autoclean 1>/dev/null 2>$LOG;
    fi
}

## Corp du programme
function main () {
    createLog;
    echo -e "##### Mise à jour du $DATE #####" > $LOG;
    chkConflict;
    exit 0;
}

main;




Certe, il ne vide pas la corbeille, mais il me semble plus adapté pour ne pas avoir de retour sur les terminaux.
_________________
Ce message contient du trolling, sauras-tu le retrouver ? | Ce message est DTCProof


Dernière édition par Zergy le Jeu 6 Aoû - 10:26 (2009); édité 2 fois
Revenir en haut
Visiter le site web du posteur ICQ MSN GTalk/Jabber
Koshie
Administrateur

Hors ligne

Inscrit le: 26 Juil 2009
Messages: 178
Localisation: Torcy

MessagePosté le: Mer 5 Aoû - 19:06 (2009)    Sujet du message: Mon premier script en Bash Répondre en citant

Enflure, le miens est mieux que le miens !

Faut réellement que je me mette au Bash :).
_________________
Merci de lire et d'approuver le règlement
Mon ordinateur compatible GNU/Linux et où je l'ai acheté, chapeau bas à Renzo !


Revenir en haut
Visiter le site web du posteur GTalk/Jabber
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 10:07 (2016)    Sujet du message: Mon premier script en Bash

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Groupe d'Utilisateurs de GNU/Linux du 77 Index du Forum -> Général -> Vos astuces Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com