Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/02/2013, à 18:16

Martoni35220

[Script] information pour recherche d'un utilisateur précis

Bonjour,

Je souhaite faire un script sur des serveurs UNIX (red hat, AIX et Solaris) en ksh.
Ce script sera déployer avec un outil de télédistribution (TCM).

Ce script doit  :
1) récupérer sur l'ensemble des serveurs unix s'il y a un compte précis et s'il expire.
2) S'il expire, envoyé l'information dans un fichier txt sur un serveur précis.
3) S'il n'expire pas, envoyé l'information dans un autre fichier txt sur le même serveur précis.

Merci d'avance de vos propositions car je ne connais rien en scripting et mes recherches ne me donne
pas d'information nécessaire pour le réaliser.

Cordialement,

Martoni

Dernière modification par Martoni35220 (Le 20/02/2013, à 18:25)

Hors ligne

#2 Le 20/02/2013, à 19:13

nesthib

Re : [Script] information pour recherche d'un utilisateur précis

1- utilise la commande chage
2/3- utilise un protocole de transfert de données/commandes (ex. ssh)

Essaie d'écrire une ébauche ou du moins de montrer ce que tu as essayé.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 21/02/2013, à 16:44

Martoni35220

Re : [Script] information pour recherche d'un utilisateur précis

Bonjour,

Merci d'avance pour cette investigation.
Cette première ébauche ne doit pas fonctionner je pense car j'ai pas bien saisi toutes les logiques dans le script mais bon.....
Voici pour un redhat :

#!/bin/ksh

#Definitions des variables
reponse=usertest:x:3501:3500:User specifique :/home/usertest:/bin/ksh
reponse2=never
echo ######################  Recherche user usertest  #####################################
echo more /etc/passwd | grep -i usertest | grep -v grep
read reponse
echo ###################### Résultat de la recherche#####################################
if [[ $reponse ]]; then
    echo "usertest est présent sur le serveur"
else
    echo "usertest n'est pas présent"
fi
echo ##################### Si l'utilisateur usertest est présent ##########################
case $reponse in
    "usertest est présent sur le serveur") chage -l usertest;;
    "usertest n'est pas présent") print Fin du script;;
esac
echo ######################  Recherche si expiration du compte ##########################   
echo chage -l usertest
read reponse2

if [[ $reponse2 ]]; then
    echo "> /tmp/nonexpire.txt"
else
    echo "> /tmp/expire.txt"

exit


Merci d'avance,

Martoni

Hors ligne

#4 Le 23/02/2013, à 20:05

nesthib

Re : [Script] information pour recherche d'un utilisateur précis

Alors,

1- utilise les balises [ code ] (le bouton bt_pre.png)

2- je ne travaille pas avec ksh mais voici quelques commentaires :

echo more /etc/passwd | grep -i usertest | grep -v grep

n'a aucun sens, si tu veux chercher « usertest » dans /etc/password tu peux faire :

SEARCHUSER="usertest"
grep "^${SEARCHUSER}:" /etc/passwd

pas besoin de « -i », les noms d'utilisateurs doivent être en minuscules, le « '^…:' » est fait pour rechercher spécifiquement dans la première colonne et avec une correspondance sur le nom entier (sinon « user » serait valide pour « userx » ou « myuser »).

Tu peux directement utiliser une commande dans ton test :

if grep -q "^${SEARCHUSER}:" /etc/passwd
then
  echo "${SEARCHUSER} est valide"
else
  echo "${SEARCHUSER} n'est pas valide"
fi

Je ne sais pas si ce $response est censé correspondre à quelque chose, mais tu peux directement intégrer tes actions dans le test précédent :

if grep -q "^${SEARCHUSER}:" /etc/passwd
then
  echo "${SEARCHUSER} est valide"
  EXPIRE="$(LANG=C chage -l ${SEARCHUSER} | grep 'Account expires')"
  echo "${EXPIRE}"
  ! [[ ${EXPIRE#*: } == never ]] && echo "${SEARCHUSER}" >>fichier_de_log
else
  echo "${SEARCHUSER} n'est pas valide"
fi

Même si je ne connais pas ksh et sans vouloir être méchant, je pense que pas une ligne de ton script n'est correcte, autant dans la syntaxe shell que dans l'utilisation des commandes. Si tu dois administrer un serveur ou si tu dois faire d'autres scripts je t'encourage très fortement à lire des introductions à la ligne de commande et aux scripts shells. Il faut absolument que tu lises des exemples fonctionnels et que tu fasses des exercices si tu veux t'en sortir. Tu verras ça n'est pas si compliqué et ça vient assez vite smile

Je n'ai pas tout détaillé dans ma proposition ci-dessus, essaie de le comprendre par toi-même (ne le lance pas en production comme ça).

3- il dit qu'il voit pas l'rapport (:p)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 25/02/2013, à 13:46

Martoni35220

Re : [Script] information pour recherche d'un utilisateur précis

Bonjour,

Tout d'abord, merci pour les commentaires car effectivement je me lance sans bien comprendre le fonctionnement et ça se voit!!! ^^
Je vais analyser tes propositions pour comprendre, tu es de bon conseil.

De plus, effectivement, je suis en prod, je dois me lancé avec des pincettes.....

Merci encore et pour la partie 3- , le commentaire est admirablement placé!!!!!! J'approuve!!!!

Je te tiens au courant de mes avancées.

Cordialement,

Martoni

Hors ligne

#6 Le 05/03/2013, à 17:53

Martoni35220

Re : [Script] information pour recherche d'un utilisateur précis

Bonjour à tout ceux qui liront ceci et à nesthib qui m'aide depuis le début,

Voici mon ébauche :

#! /bin/ksh
# ============================================================================
function Search_usertest
{
	case "`uname`" in
#---------
    Linux)
#---------
      SEARCHUSER="usertest"
	  grep "^${SEARCHUSER}:" /etc/passwd

if grep -q "^${SEARCHUSER}:" /etc/passwd
then
  echo "${SEARCHUSER} est valide"
  EXPIRE="$(LANG=C chage -l ${SEARCHUSER} | grep 'Account expires')"
  echo "${EXPIRE}"
  ! [[ ${EXPIRE#*: } == never ]] && echo "${SEARCHUSER}" >> /tmp/no_expire.txt
else
  echo "${SEARCHUSER} expire" > /tmp/expire.txt
fi
;;

#---------
    SunOS)
#---------
SEARCHUSER="usertest"
	  grep "^${SEARCHUSER}:" /etc/passwd

if grep -q "^${SEARCHUSER}:" /etc/passwd
then
  echo "${SEARCHUSER} est valide"
  EXPIRE="$(LANG=C chage -l ${SEARCHUSER} | grep 'Account expires')"
  echo "${EXPIRE}"
  ! [[ ${EXPIRE#*: } == never ]] && echo "${SEARCHUSER}" >> /tmp/no_expire.txt
else
  echo "${SEARCHUSER} expire" > /tmp/expire.txt
fi
;;

#-------
    AIX)
#-------
SEARCHUSER="usertest"
	  grep "^${SEARCHUSER}:" /etc/passwd
	  
if grep -q "^${SEARCHUSER}:" /etc/passwd
then
  echo "${SEARCHUSER} est valide"
  EXPIRE="$(LANG=C lsuser -f ${SEARCHUSER} | fgrep expires ) "
  echo "${EXPIRE}"
  ! [[ ${EXPIRE#*: } == 0 ]] && echo "${SEARCHUSER}" >> /tmp/no_expire.txt
else
  echo "${SEARCHUSER} expire" > /tmp/expire.txt
fi
;;

#---------
    *)
#---------
      echo "Type d'OS non supporté : `uname`"
      ;;
  esac
}

exit 0

Merci d'avance à tous,

Cordialement,

Martoni

edit modo : les balises code !

Dernière modification par nesthib (Le 06/03/2013, à 03:06)

Hors ligne

#7 Le 06/03/2013, à 03:06

nesthib

Re : [Script] information pour recherche d'un utilisateur précis

Et ça fonctionne ?


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#8 Le 06/03/2013, à 11:19

Martoni35220

Re : [Script] information pour recherche d'un utilisateur précis

Bonjour,

Je n'ai pas encore pris le temps de le tester à la maison et nous n'avons même pas de bac à sable en prod....

Affaire à suivre.....

Martoni

Hors ligne

#9 Le 06/03/2013, à 12:43

Martoni35220

Re : [Script] information pour recherche d'un utilisateur précis

Bonjour,

Comment met-on les les balises code pour une lecture plus facile d'un script déposé dans un message s'il-vous-plaît?

J'ai trouvé des informations sur les scripts html mais pour ce type de script, quel est l'ajout à effectuer, merci d'avance,

Cordialement,

Martoni

Hors ligne

#10 Le 06/03/2013, à 16:10

nesthib

Re : [Script] information pour recherche d'un utilisateur précis

Pour les balises code tu as un bouton bt_pre.png, je te l'ai déjà précisé dans mon message #4 wink
Ça n'est dépendant d'aucun langage.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne