Zdravim, pohravam si momentalne s shell scriptovanim. Vytvarim maly script ktery by mi vypsal obsah slozky do pole zobrazil pole a ja si z nej pak mohl vybrat a ten dany soubor tailovat.
Aktualne to mam na prasaka udelane na tvrdo takze menu ze ktere ho si vyberu 1-35 a to mi pak hodi tail -n 500 -f /opt/app/log/app1-35.log
Rad bych to predelal do trochu cistci formy a zaroven bych scriptit pak chtel pouzit i na jinych strojich aniz bych tam pokazde musel prepisovat cesty k logum. Ovsem nejsem si moc jisty jak to provest korektne.
Zkousel jsem vlozit obsah do pole pomoci array=($(ls /opt/app/log/*.log)) a zobrazit pomoci echo ${array
- }
Ovsem dal si nevim rady jak vypsat ocislovane jednotlive soubory v seznamu ne zasebou a pak si z nej vybrat ktery soubot bych tailoval.
Budu rad za kazde nasmerovani radu jsem ve Shell scriptovani uplny zacatecnik.
ak som to spravne pochopil tak narychlo
array=($(ls /opt/app/log/*.log))
for i in `seq 1 ${#array[zavinac]}`
do
echo $i ${array[$i]}
done
read cislo
tail -n 500 -f ${array[$cislo]}
Jo to je presne ono. Dekuju za pomoc :)
tu je celkom vhodne pouzit shellovsku funkciu select.
array=( /opt/app/log/*.log ) ; # tu je zbytocne pouzivat ls, staci vyuzit shell expanziu
select file in ${array[zavinac]}; do
ls -la ${file};
tail -10 ${file};
break;
done
zbytocne nezbytocne.... skript sa da napisat na 50 spobovo a moj funguje.