OpenWrt/Užitečné skripty
Automatické připojení oddílů do správného adresáře
[editovat | editovat zdroj]Skript projde všechny automaticky připojené oddíly a hledá soubor v kořenovém adresáři. V tomto souboru je uložená cesta, kam má být oddíl připojen. Oddíl se na nové místo nepřipojí v případě, že soubor neexistuje, adresář pro připojení nexistuje nebo není prázdný. Oddíly zůstanou připojeny i na starém místě.
#!/bin/sh
ID=disc.id
PART=$(ls /mnt)
for I in $PART; do
[[ -r /mnt/$I/$ID ]] && {
POINT=$(cat /mnt/$I/$ID)
[[ -d $POINT ]] && ls $POINT/* || mount --bind /mnt/$I $POINT
} >> /dev/null
done
Kopírování souboru při startu
[editovat | editovat zdroj]Skript zjistí zda existují adresáře a pak zkopíruje obsah prvního do druhého včetně uživatelských práv. Toto je vhodné například pro uložení uživatelských konfigurací uživatele root. Pokud zdrojový adresář nepodporuje uživatelská práva můžeme odstranit přepínač -p v příkazu cp.
Pokud budou tato data umístěna na externím disku, mohou být hesla uložená v textových souborech snadno čitelná při připojení tohoto disku k jinému počítači.
#!/bin/sh
FROM=/opt/etc/root
TO=/tmp
[[-d $FROM]] && [[-d $TO]] && {
cp -p $FROM/* $TO
cp -p $FROM/.* $TO
}
Mazaní souborů menších než
[editovat | editovat zdroj]Protože příkaz find v busyboxu nepodporuje hledání podle velikosti, můžeme toto vyřešit instalaci balíčku z Optware nebo následujícím skriptem
#!/bin/sh
[[$# -eq 0]] && {
echo At least one parameter required
echo Usage: rmshorter bytes [path]
exit 1
}
echo $1 | grep -E "^[0-9]*$" > /dev/null || {
echo First parameter must be number
echo Usage: rmshorter bytes [path]
exit 1
}
[["$2" == ""]] || [[-d $2]] || {
echo Bad directory
echo Usage: rmshorter bytes [path]
exit 1
}
DIRE="$2"
CONT=$(ls -1 $DIRE)
[["$DIRE" == ""]] && DIRE=$(pwd)
echo $DIRE | grep -E "/$" || DIRE="$DIRE/"
for I in $CONT; do {
[[ -f $DIRE$I ]] && {
LEN=$(ls -l $DIRE$I | grep -o -E "[0-9]*\ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" | grep -o -E "[0-9]*")
[[ $LEN -lt $1 ]] && rm -f $DIRE$I
}
}
done