Portál AbcLinuxu, 17. července 2025 18:39
Ahoj všem,
potřeboval bych pomoct s napsánim skriptu,který bude monitorovat vytíženost CPU a pokud najde proces který má,řekněme více jako 20% CPU,tak provede nějakou akci(tu už si nadefinuji sám).Jedná se o OS Solaris.
předem děkuji za hinty
Zkoušel jsi ps?
Vypíše proces, který nejvíce vytěžuje procesor, první sloupeček je vytížení, druhý PID procesu:
$ ps ax -o pcpu,pid --sort pcpu |tac |head -n 1 11.4 3885
Díky za hinty. vyřešil jsem první část problému.. napsal jsem skript:
if top | grep "xxx" ;then
....
else
.....
fi
což funguje.Ted ale ve spojitosti s tím řeším další věc.Potřbuji v jedné větvi udělat toto:
Zkopírovat naposledvy vytvořený soubor(log) ve složce..v té složce je těch souborů desítky,takže jak udělat aby se zkoppíroval jen jeden?A jak udělat aby při další kontrole tímto skriptem,se už daný log zbytečně nekopíroval..tz.jak udělat kontrolu že daný log je už zkoppírován?
díky
Nalezení souboru dle času posledního přístupu/modifikace/změny práv můžeš vyřešit pomocí stat:
#!/bin/bash newest_time=0 newest_file="" for file in *.log; do modification_time=$(stat --format='%Y' $file) if [ "$modification_time" -gt "$newest_time" ]; then newest_time=$modification_time newest_file="$file" fi done echo "Newest file = $newest_file"
Aby jsi log znovu nekopíroval, tak buď zkontroluj pokud to lze zda-li již v cíli neexistuje. Případně si někam ulož informaci o tom, že jsi soubor již zkopíroval např. touch název_logu.copy
.
díky za pomoc..kontrolu jestli je daný log už zkopírovaný jsem udělal..možná trochu složitěji než je potřeba,ale funguje to...ten skript co jsi napsal mám dát do větve(true)??
zatim ten skript vypadá takhle
zkr.verze :))
if top | grep "..."; then
if ls ./ | grep "..."; then
exit
else
....tady potřebuju udělat to kopírování naposled vytvořeného logu??
fi
else
exit
fi
asi to není nejhezčí,ale funguje to...což mi stačí..je to jen workarround
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.