Tips en Trucs 2010

Een boekhouding van processen

Een boekhouding aanleggen van alle gestarte processen kan interessant zijn om beveiligingsredenen, het maken van statistieken, optimalisatie of andere denkbare administratieve redenen.

Het pakket acct is in de meeste distributies niet standaard geïnstalleerd, maar wel aanwezig in de standaard softwarebronnen. Na de installatie van het pakket acct start je het verzamelen van proces-gegevens met de opdracht
sudo /usr/sbin/accton /var/account/pacct
Vanaf dan wordt elk proces gevolgd. De verzamelde gegevens worden opgeslagen in het logbestand /var/account/pacct. Daar het logbestand de verzamelde gegevens binair opslaat, heb je een hulpmiddel nodig om het logbestand te lezen.

De opdracht sudo /usr/sbin/dump-acct /var/account/pacct vertaalt het logbestand naar leesbare informatie:
accton          |   0.0|   0.0|1609.0|    0|    0|3760.0|   0.0|Fri Jul 23 13:55:35 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:55:51 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:55:51 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:55:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:56:27 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 13:56:38 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 13:56:38 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:56:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:57:27 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:57:57 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 13:58:08 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 13:58:08 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:58:27 2010
ls              |   0.0|   0.0|   0.0| 1000|  100|20152.0|   0.0|Fri Jul 23 13:58:30 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:58:30 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:58:30 2010
ls              |   0.0|   0.0|   0.0| 1000|  100|20152.0|   0.0|Fri Jul 23 13:58:43 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:58:43 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:58:43 2010
ls              |   0.0|   0.0|   1.0| 1000|  100|28856.0|   0.0|Fri Jul 23 13:58:49 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:58:49 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 13:58:49 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:58:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:59:27 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 13:59:34 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 13:59:34 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 13:59:57 2010
on_ac_power     |   0.0|   0.0|   0.0|    0|    0|11320.0|   0.0|Fri Jul 23 14:00:02 2010
run-crons       |   0.0|   0.0|   2.0|    0|    0|11320.0|   0.0|Fri Jul 23 14:00:02 2010
sh              |   0.0|   0.0|   3.0|    0|    0|11320.0|   0.0|Fri Jul 23 14:00:02 2010
cron            |   0.0|   0.0|   6.0|    0|    0|20832.0|   0.0|Fri Jul 23 14:00:02 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:00:27 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:00:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:01:27 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:01:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:02:27 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:02:43 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:02:43 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:02:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:03:27 2010
dump-acct       |   0.0|   0.0|   0.0| 1000|  100|3892.0|   0.0|Fri Jul 23 14:03:40 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 14:03:40 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 14:03:40 2010
dump-acct       |   0.0|   0.0| 653.0|    0|    0|3892.0|   0.0|Fri Jul 23 14:03:50 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 14:03:56 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 14:03:56 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:03:57 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:04:03 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:04:03 2010
dump-acct       |   0.0|   0.0|   0.0|    0|    0|3896.0|   0.0|Fri Jul 23 14:04:09 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 14:04:09 2010
bash            |   0.0|   0.0|   0.0| 1000|  100|22416.0|   0.0|Fri Jul 23 14:04:09 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:04:27 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:04:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:05:27 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:05:57 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:06:04 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:06:04 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:06:27 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:06:57 2010
on_ac_power     |   0.0|   0.0|   0.0| 1000|  100|12784.0|   0.0|Fri Jul 23 14:07:27 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:07:37 2010
polkit-read-aut |   0.0|   0.0|   0.0|  106|  109|29592.0|   0.0|Fri Jul 23 14:07:37 2010
De uitvoer kan afhankelijk van de activiteit van uw systeem en de duur van het verzamelen zeer lang zijn. Daar veel gegevens verzameld worden, roteer je best de logbestanden op een regelmatige basis. Dit roteren of opruimen zorgt dat de logbestanden niet te groot worden.

De lijst somt alle processen op vanaf het moment dat we de gegevensverzameling hebben gestart. De uitvoer bestaat uit een tabel met de volgende informatie: naam van het proces, actieve gebruikers tijd, actieve systeem tijd, effectief actieve tijd, UID (gebruiker-ID), GID (groep-ID), geheugengebruik en de laatste kolom bevat de datum en tijd.

Het verzamelen van proces-gegevens kun je ook starten met de opdracht
sudo /etc/init.d/acct start
Het starten via het init script is de aanbevolen methode om acct te starten. Het verzamelen van proces-gegevens is geen dienst (service) in zijn typische vorm. Het init script zoekt niet naar het gestarte proces, maar controleert of er een lock bestand in /var/ bestaat. Dit heeft als gevolg dat als je de gegevensverzameling start met accton het init script daar niet van op de hoogte is waardoor het foutieve gegevens verzamelt.

Om het verzamelen van gegevens te stoppen, gebruik je de opdracht
sudo /usr/sbin/accton
Door geen logbestand op te geven, wordt de gegevensverzameling gestopt. De gegevensverzameling start als je een logbestand opgeeft. Wees voorzichtig met het activeren en uitschakelen van de gegevensverzameling. M.a.w. gebruik één van de twee methoden (via accton of het init script).