Discussion:
Cronjobs
(te oud om op te antwoorden)
Paul van der Vlis
2023-04-15 12:29:54 UTC
Permalink
Hallo,

Op mijn hosting server waar velen toegang hebben, zie ik om de twee
minuten deze meldingen:
------
Apr 9 02:35:40 hosting mariadbd[1486138]: 2023-04-09 2:35:40 1478673
[Warning] Aborted connection 1478673 to db: 'unconnected' user:
'unauthenticated' host: 'localhost' (This connection closed normally
without authentication)
Apr 9 02:35:40 hosting mariadbd[1486138]: 2023-04-09 2:35:40 1478674
[Warning] Aborted connection 1478674 to db: 'unconnected' user:
'unauthenticated' host: 'localhost' (This connection closed normally
without authentication)
-----

Ik zou graag willen weten wie of wat dit doet om het een halt toe te
roepen. Maar hoe kom ik er nu achter welke user of proces dit is?

Ik heb al gekeken met "systemctl list-timers" en "systemctl --user
list-timers", maar daar vind ik het niet, het is dus deze keer geen systemd.

Verder heb ik dit gedaan:
cat /var/spool/cron/crontabs/*
Waar ik het ook niet bij vind.

Verder alles bekeken in /etc/cron.d/ maar daar is het ook niet.

In directories als cron.hourly zal het niet staan, want dit is vaker.

"at" is niet geïnstalleerd.

Iemand nog een idee?

Groet,
Paul
--
Paul van der Vlis Linux systeembeheer Groningen
https://vandervlis.nl
Oscar
2023-04-17 09:42:06 UTC
Permalink
Post by Paul van der Vlis
cat /var/spool/cron/crontabs/*
Waar ik het ook niet bij vind.
Verder alles bekeken in /etc/cron.d/ maar daar is het ook niet.
In directories als cron.hourly zal het niet staan, want dit is vaker.
"at" is niet geïnstalleerd.
Iemand nog een idee?
Niet echt, behalve dat je /etc/crontab zelf nog niet bekeken hebt.

Wel wil ik mijn oneliner delen voor dit soort zoektochten:

grep -r ^ /etc/cron* /var/spool/cron | less -S

Dit laat alles zien in /etc/crontab, cron.d, cron.whatever en
/var/spool/cron vanwege de -r. In plaats van 'cat' gebruik ik 'grep ^'
wat precies iedere regel ("met een begin") in ieder bestand matched,
waarbij grep dan ook nog de bestandsnaam ervoor zet. Op deze manier heb
je alle cron-configuraties op een rijtje in less.

Voor systemd-getimede dingen kun je ook op zoek naar *.timer.

Maar waar zoek je specifiek naar? Een connectie met mariadb kan overal
vandaan komen. Is dit een connectie via een socket of via TCP? Misschien
kun je vanuit die hoek iets vinden, met lsof of zo? Je kan dan zien welk
proces op die socket luistert en dan met strace -p <pid> -f kijken of je
meer informatie kan vergaren.
--
[J|O|R] <- .signature.gz
Paul van der Vlis
2023-04-17 11:12:19 UTC
Permalink
Post by Oscar
Post by Paul van der Vlis
cat /var/spool/cron/crontabs/*
Waar ik het ook niet bij vind.
Verder alles bekeken in /etc/cron.d/ maar daar is het ook niet.
In directories als cron.hourly zal het niet staan, want dit is vaker.
"at" is niet geïnstalleerd.
Iemand nog een idee?
Niet echt, behalve dat je /etc/crontab zelf nog niet bekeken hebt.
grep -r ^ /etc/cron* /var/spool/cron | less -S
Oh, dat is inderdaad wel een leuke!
Post by Oscar
Dit laat alles zien in /etc/crontab, cron.d, cron.whatever en
/var/spool/cron vanwege de -r. In plaats van 'cat' gebruik ik 'grep ^'
wat precies iedere regel ("met een begin") in ieder bestand matched,
waarbij grep dan ook nog de bestandsnaam ervoor zet. Op deze manier heb
je alle cron-configuraties op een rijtje in less.
Inderdaad ;-)
Post by Oscar
Voor systemd-getimede dingen kun je ook op zoek naar *.timer.
Maar ik neem aan dat dat dan hetzelfde is als dat ik met systemctl krijg.
Post by Oscar
Maar waar zoek je specifiek naar? Een connectie met mariadb kan overal
vandaan komen. Is dit een connectie via een socket of via TCP?
Volgens mij via TCP, want ik zie "host: 'localhost'". Mijn firewall
staat dicht voor MySQL, dus het moet al van localhost komen.
Post by Oscar
Misschien
kun je vanuit die hoek iets vinden, met lsof of zo? Je kan dan zien welk
proces op die socket luistert en dan met strace -p <pid> -f kijken of je
meer informatie kan vergaren.
Ik heb het geprobeerd met "strace -p 1486138", er komt veel voorbij en
het is me niet duidelijk waar ik op moet letten.

Als ik "telnet localhost 3306" doe, dan krijg ik dezelfde melding in de
logs.

Groet,
Paul
--
Paul van der Vlis Linux systeembeheer Groningen
https://vandervlis.nl
Oscar
2023-04-17 12:51:35 UTC
Permalink
Post by Paul van der Vlis
Maar ik neem aan dat dat dan hetzelfde is als dat ik met systemctl krijg.
Ja, maar dan kan je gelijk de inhoud bekijken. (Hoewel dat natuurlijk
ook kan met 'systemctl cat service.naam')
Post by Paul van der Vlis
Post by Oscar
Maar waar zoek je specifiek naar? Een connectie met mariadb kan overal
vandaan komen. Is dit een connectie via een socket of via TCP?
Volgens mij via TCP, want ik zie "host: 'localhost'". Mijn firewall
staat dicht voor MySQL, dus het moet al van localhost komen.
Het kan zijn dat connecties via de unix socket ook als 'localhost'
gelogd worden, omdat die nergens anders vandaan _kunnen_ komen. Ik ken
mariadb niet goed genoeg om uit mijn hoofd te zeggen wat ie doet.
Post by Paul van der Vlis
Post by Oscar
Misschien
kun je vanuit die hoek iets vinden, met lsof of zo? Je kan dan zien welk
proces op die socket luistert en dan met strace -p <pid> -f kijken of je
meer informatie kan vergaren.
Ik heb het geprobeerd met "strace -p 1486138", er komt veel voorbij en
het is me niet duidelijk waar ik op moet letten.
Sowieso zal je -f er bij moeten zetten, omdat de client waarschijnlijk
pas na een fork() wordt bediend. Maar inderdaad: lastig aan te geven
waar je naar moet kijken. Een accept()-call? En dan?
Post by Paul van der Vlis
Als ik "telnet localhost 3306" doe, dan krijg ik dezelfde melding in de
logs.
Interessant. Is het mogelijk om die server down te brengen, of verstoor je
dan teveel? Als dat mogelijk is, kun je eens een netcat laten luisteren
op die poort: 'nc -v -l -p 3306'. Op het moment dat je dan een connectie
ziet, kun je met 'ss -tnap | grep -w 3306' zien wie er aan de andere
kant hangt.

Alternatief kan je misschien ook wel wat zien met tcpdump, hoewel ik
even niet weet hoe je de procesnaam of pid van de verzendende partij kan
zien. Heel misschien kun je nog een TIME_WAIT status betrappen met een
snelle ss of netstat?
--
[J|O|R] <- .signature.gz
Loading...