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 27/11/2006, à 20:21

next-d

juste pour tout le monde -> kel sont vos meilleurs scripts

juste histoire de savoir et d'apprendre surtout
si vous en mettez penser a les expliquer smile
on s'est jamais je suis sure que ca peu etre utile
smile

Hors ligne

#2 Le 27/11/2006, à 21:06

abetsic

Re : juste pour tout le monde -> kel sont vos meilleurs scripts

#!/bin/sh


file_echo(){
        echo $1 >> index.html
}

current_directory=`pwd | sed s/"\/.*\/"//`

test -f index.html && rm -f index.html # remove index.html if exists

# generation of the html file
file_echo "<html>"
file_echo "<head>"
file_echo "<title>Index of $current_directory </title>"
file_echo "<style type=\"text/css\">"
file_echo "img { border: 0; padding: 0 2px; vertical-align: text-bottom; }"
file_echo "td  { font-family: monospace; padding: 2px 3px; text-align: right; vertical-align: bottom; white-space: pre; }"
file_echo "td:first-child { text-align: left; padding: 2px 10px 2px 3px; }"
file_echo "table { border: 0; }"
file_echo "a.symlink { font-style: italic; }"
file_echo "</style>"
file_echo "</head>"

file_echo "<body>"
file_echo "<h1>Index of $current_directory</h1>"
file_echo "<hr/>"
file_echo "<table>"
file_echo "<tr><td><a href=\"..\">Parent Directory</a></td></tr>"
for i in *; do
        if [ -d "$i" ]; then # folders
                modified_date=`ls -lhd "$i" | awk '{print $6}'`
                modified_hour=`ls -lhd "$i" | awk '{print $7}'`
                file_echo "<tr>"
                file_echo "<td><a href=\"$i\">$i/</a></td>"
                file_echo "<td></td>" # size
                file_echo "<td>$modified_date</td>"
                file_echo "<td>$modified_hour</td>"
                file_echo "</tr>"
        fi
done

for i in *; do
        if [ ! -d "$i" ]; then # regular files not hidden
                size=`ls -lh "$i" | awk '{print $5}'`
                modified_date=`ls -lh "$i" | awk '{print $6}'`
                modified_hour=`ls -lh "$i" | awk '{print $7}'`
                file_echo "<tr>"
                file_echo "<td><a href=\"$i\">$i</a></td>"
                file_echo "<td>$size</td>"
                file_echo "<td>$modified_date</td>"
                file_echo "<td>$modified_hour</td>"
                file_echo "</tr>"
        fi
done
file_echo "</table>"
file_echo "</body>"
file_echo "</html>"
# end of html file

Pour générer un index.html d'un répertoire lorsque le serveur apache est configuré pour ne pas le faire automatiquement et afficher une page d'erreur à la place (c'est le cas sur le serveur de mon école)

#!/bin/bash
if [ -z $1 ]; then
        date=`date +%F`
        echo paquets installes aujourd\'hui :
else
        date=$*
        echo paquets installés le $1
fi

grep " install " /var/log/dpkg.log | grep "^$date.*"

Pour avoir les paquets installés à la date passés en argument (format jj-mm-aaaa) ou les paquets installés le jour même si il n'y a pas d'arguments.

#!/bin/bash
$@ &> /dev/null &

Pour lancer l'application passée en argument et rediriger tout les flux de sorties vers /dev/null et récupérer la main sur la console (pratique pour des applications qui sont trop bavardes en console, mais depuis edgy les applis ne semblent plus afficher de choses en console)

#!/bin/sh

for i in *.mpc
do
        MPCFILE=$i
        WAVFILE=${MPCFILE%mpc}wav
        MP3FILE=${MPCFILE%mpc}mp3

        mppdec "$MPCFILE" "$WAVFILE"
        lame --preset standard "$WAVFILE" "$MP3FILE"
        rm "$WAVFILE"
done

pour transformer un fichier mpc en mp3 (il faut télécharger le programme mppdec)

#!/bin/sh
# Script to convert every *.wma file of current directory in ogg
for i in *.wma;
        do
        mplayer -ao pcm -ao pcm:file="${i%.wma}.wav" "$i"
        oggenc -m 256 "${i%.wma}.wav"
        rm -f "${i%.wma}.wav"

pour transformer du wma en ogg


#!/bin/sh
# This script should be launched at startup once network is up

. /lib/lsb/init-functions

start_iptables()
{
        # flush the table entry
        iptables -F


        # Block the IP for 60 seconds after three failed ssh connections
        iptables -N SSH_WHITELIST
        iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
        iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
        iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
        iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP

        # Block the IP for 60 seconds after three failed ftp connections
        iptables -N FTP_WHITELIST
        iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --set --name FTP
        iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j FTP_WHITELIST
        iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name FTP -j ULOG --ulog-prefix FTP_brute_force
        iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name FTP -j DROP
}

stop_iptables()
{
        iptables -F
}

case "$1" in
        start)
                log_begin_msg "Setting iptable basic rules"
                start_iptables
                log_end_msg 0
                ;;
        stop)
                log_begin_msg "Reset iptables rules"
                stop_iptables
                log_end_msg 0
                ;;
        restart)
                log_begin_msg "Restart iptables rules"
                start_iptables
                log_end_msg 0
                ;;
        *)
                log_success_msg "Usage :/etc/init.d/iptables {start|stop|restart}"
                ;;
esac

exit 0

script que j'ai mis dans /etc/init.d avec les liens qui vont bien dans /etc/rc*.d pour qu'il soit lancé à chaque boot.
Ce script configure iptables, le firewall du noyau pour bloquer les tentatives de brute force sur mon serveur ssh ou ftp pendant 60 secondes si il y a eu trois echecs du mot de passe.

Pour la plupart je les ai récupérés sur internet smile

Dernière modification par abetsic (Le 27/11/2006, à 21:09)

Hors ligne