#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
on s'est jamais je suis sure que ca peu etre utile
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
Dernière modification par abetsic (Le 27/11/2006, à 21:09)
Hors ligne