OpenWrt/Užitečné skripty
Z Wikiknih
< OpenWrt
[editovat] Automatické připojení oddílů do správného adresáře
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
[editovat] Kopírování souboru při startu
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 }
[editovat] Mazaní souborů menších než
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