Inlägg

Inlägg som Sweedland har skrivit i forumet
Av Sweedland

C-kod. Bit-hantering. Vad gör koden?

Begriper inte detta...

Parametern _ucWGM120 är från en enum och satt till värdet 4 i detta fall.

Vad gör modulus-operatorn i praktiken här? Jag kan definitionen för modulus men de använder den här av en anledning och jag är blind idag.
Kan säga att koden är avsedd för en IAR men jag ska porta den till gcc (Atmel studio).
TCCR1B_WGM13 är ett macro kan man säga. WGM13 är en bit i TCCR1B....

void TC1_setWaveformGenerationMode(eTC1_wgm _ucWGM120) { unsigned char ucWGM120 = _ucWGM120; TCCR1B_WGM13 = ucWGM120/8; ucWGM120 = ucWGM120%8; TCCR1B_WGM12 = ucWGM120/4; ucWGM120 = ucWGM120%4; TCCR1A_WGM11 = ucWGM120/2; ucWGM120 = ucWGM120%2; TCCR1A_WGM10 = ucWGM120; }

Av Sweedland
Skrivet av anon78208:

Föreslår att du kör:

sudo dpkg -P linux-image-4.4.0-116-generic linux-image-4.4.0-119-generic linux-image-4.4.0-121-generic linux-image-extra-4.4.0-116-generic linux-image-extra-4.4.0-119-generic linux-image-extra-4.4.0-121-generic

Så blir du kvitt alla utom de två senaste.

Det där gick ju hur fint som helst. Körde den på min laptop med Mint. Ska använda samma på den andra som jag har problem med.
Tack.

Edit: Denna laptop har ingen separat boot-partition. Den andra datorn jag har, har en separat boot på 500M. Det är den som svämmat över.
Jag antar (utan att veta) att boot-mappen som finns högst upp innehåller det som krävs för en boot. På den andra datorn finns ju också en mapp som heter boot men den "mappar" upp den extra partitionen. Har jag rätt eller fel eller kanske halv-rätt?

Av Sweedland
Skrivet av anon78208:

@Sweedland: Normalt ska de automatiskt rensas bort, förutom de två senaste så att man har den aktuella versionen, och en äldre att falla tillbaka på om en uppdatering skulle orsaka att systemet inte kan boota. Har dock sett en del datorer med olika versioner av Ubuntu där detta inte verkar som att det fungerar som det ska och de samlar på sig fler och fler kärnor varje gång det kommer en uppdatering. Vet ej riktigt varför detta händer ibland.

Föreslår apt borttagning av de gamla kärnorna om du kör 'sudo apt autoremove'?

Det ligger kvar en hel del alltså. Några "extra" också.
Jag har kört autoremove men den tog inte bort nåt av dessa.

ii linux-image-4.4.0-116-generic 4.4.0-116.140 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-119-generic 4.4.0-119.143 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-121-generic 4.4.0-121.145 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-122-generic 4.4.0-122.146 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-21-generic 4.4.0-21.37 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-116-generic 4.4.0-116.140 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-119-generic 4.4.0-119.143 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-121-generic 4.4.0-121.145 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-122-generic 4.4.0-122.146 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP ii linux-image-extra-4.4.0-21-generic 4.4.0-21.37 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP

Ok. GRUB väljer kärna. Ska läsa om det.

Tack.

Av Sweedland
Skrivet av Lembritt:

@Sweedland: Kolla om du har gamla kärnor som du inte använder.
Tror att Mint har ett verktyg i GUI för att kunna städa bort dom. Är inte säker, har inte kört Mint på väldigt länge.

Du kan även testa att följa denna guide för Ubuntu, då Mint är byggt på Ubuntu.

https://askubuntu.com/questions/345588/what-is-the-safest-way...

Jag följde guiden. Jag har ju säkert 8 kärnor liggande där. Jag trodde (i min okunskap) att den gamla ersattes. Kanske beror på att Linux funkar så annorlunda mot Windows miljön jag är uppvuxen med. Givetvis undrar jag nu vilken conf-fil som hanterar den kärna som ska användas för stunden.

Av Sweedland

Hur åtgärda BOOT partitionen?

Fick en uppdatering till min Mint. En uppdatering för kärnan. Efter ett tag blev det stopp i installeringen för det saknades utrymme på Boot partitionen. Installationen falerade alltså. Hur går jag vidare?
Städa bort paketet som ligger där till hälften installerad? Utöka boot med gparted?
Jag kan gå tillbaka i tiden också för jag har Timeshift installerad.

Av Sweedland
Skrivet av anon277726:

@Sweedland: iftop fungerar minst lika bra, fint att du hittade iftop.

Vet inte om du kikat på apaches inbyggda verktyg också, men ifall att du inte provat så gör följande:
Öppna: /etc/httpd/conf/httpd.conf
Ta bort # från: #LoadModule status_module modules/mod_status.so

Lägg nu bara till följande i sites-enable/*.conf eller httpd.conf och besök sedan http://dinhemsida.com/server-status för att ha koll på din apache-setup:

<Location /server-status>
SetHandler server-status
Order deny, allow
Deny from all
Allow from xx.xx.xx.xx
</Location>

https://sendit.nu/f/twkRPCD9C23CpD.jpg

Det där stycket som läggs till i sites-enable ser ut som ett filter för mig. Utan att veta så tror jag det är i Apache jag kan kontrollera datatrafiken. Det finns en kunskapslucka för mig där att fylla.

Av Sweedland
Skrivet av anon277726:

För att övervaka i realtid:
netstat -ano|grep 443|grep ESTABLISHED
tcptrack -i eth0 port 443

Jag skulle rekomendera iptables när det handlar om att övervaka/logga trafik på en viss port, adda något sådant här:
sudo iptables -I INPUT -p tcp --dport 443 --syn -j LOG --log-prefix "HTTPS SYN: "

Allt som matchar HTTPS SYN te.x kommer att loggas i /var/log/messages, du kan ju logga allt så ser du vad för exempel som dyker upp så är de bara att köra igång efter eget behov.

För att se tidigare trafik så borde väl de finnas i /var/log/apache2/access.log eller /var/log/httpd/access_log, annars använd phpinfo() .

// wuseman

Ska använda mig av dina tips. Jag installerade iftop i fredags em och innan jag åkte hem från jobbet så såg jag att det var en hel del trafik ut o in som verkade mer bero på att utrustningen var ansluten mot internet. Mitt program var "tyst" men datorn (Raspberryn) i sig hade trafik. Nu granskade jag inte nåt alls mer än att jag konstaterade trafiken. Ska kolla på måndag vad som försiggår. Nån log var aktiv ialla fall såg jag.

Av Sweedland
Skrivet av stingray454:

"nethogs" är bra för detta då den grupperar datatrafik per process.

Undra om nethogs kan logga trafiken till SD-kortet också?

Av Sweedland
Skrivet av stingray454:

"nethogs" är bra för detta då den grupperar datatrafik per process.

Det ska jag absolut testa. Har stängt av postfix och också vissa script som körs m.h.a cron. Det tycks inte åtgärda läckaget har jag sett nu efter helgen.
Vad händer om användaren inte loggar ur Apache? Blir det en timeout i den och den stänger?

Av Sweedland
Skrivet av TommyToad:

Okej...
Så, du har en Raspberry Pi, som du kör bakom en router? Vad är det för router? Tillverkare, modell, etc?
Routern har nu mailat dig och berättat att din Raspberry Pi använder mycket datatrafik? Är det en typ 4G-router med simkort?
Vad kör Raspberryn och vad är den till för?
Vad är det för script du kör var 5:e minut?

Teltonika RUT240 heter routern. Routern stödjer 2G/3G/4G så vitt jag vet. Har inte läst in mig på routern.
Jag har inte fått nåt mail för jag är inte uppsatt som mottagare av dessa admin.mess. Jag var däremot in på portalen för kontrollera att inte min mjukvara "äter" data. Där var det en router som var nära 1 Gig i data medan de andra låg runt 50k.
Raspen driver runt en programvara som ligger bara o loopar tills användaren begär, via webläsare och apache, information. När rpi:n ligger o loopar så pingar den via ett buss-system ett nätverk av klienter.
Scriptet jag tänker på kontrollerar storleken på log-filer. En av dessa log-filer saknades näsr storleken kontrollerades och det fick jag en hel del mail om. Systemet skickar mail till ROOT (jag) eftersom den inte kan skicka till USER. Så har jag förstått mailet. Därav MAILTO="" i crontab.

Av Sweedland
Skrivet av Nepo:

Om du loggar in på routern, kan du få fram något där?

Loggade in där och noterade att data förbrukades hela tiden jag var inne på den sidan - det är ju helt naturligt. Det som *kan* ha hänt är att "nån" lämnat routerns sida öppen i web.läsaren över lunch och sen har det slunkit ut en hel del meg.
Det bör ju belasta SIM-kortet.

Av Sweedland
Skrivet av Nepo:

Om du loggar in på routern, kan du få fram något där?

Har inte loggat in på själva routern. Portalen, som administrerar IP-adresserna, har ingen log. Bara datamängd.
Ska ta mig in i routern...

Av Sweedland
Skrivet av TommyToad:

Du behöver vara mer utförlig i din beskrivning av din setup.

Har script som aktiveras av cron var 5:e minut. Ett av dessa script skickade tidigare mail var 5:e minut. Skrev därför MAILTO="" överst i crontab. Har ej hunnit kolla om det hjälpt.
Sen har jag tidigare fått mail med innehållet /usr/sbin/anacron. Detta återfinns i /etc/crontab.

Tyvärr har jag inte satt mig in i detta speciellt mycket som ni hör. Jag behöver få kontroll på denna lust o skicka mail hela tiden.

Av Sweedland
Skrivet av GLaDER:

@Sweedland: Vad kör den för OS?

Just denna det gäller använder Raspian.

Av Sweedland

Hög datatrafik. Kolla lämplig log-fil?

Har en router ansluten till en RPI:s LAN-port och nu har routern indikerat hög datatrafik. Inte bra.
Var kan man ev. se log-filer som berättar om vad som skett? Källa och när i tid.
Tar tacksamt emot tips.

Har installerat mail men inaktiverat den från den programvara som jag gjort.
Egentligen skulle jag vilja fimpa mailen helt. Den användes mest under utvecklingsfasen.

Av Sweedland
Skrivet av kai:

@Sweedland: Något som inte täckts av föregående svar är att du inte direkt kan dela miljövariabler mellan ett script som kör via cron, och ett program (t.ex. skrivet i C som du nämner) som exekverar separat, även om även detta startas via cron. De kör i olika kontext så du behöver hitta något annat sätt att dela informationen. T.ex. en fil eller liknande.

Ha ha Ja. Jag har försökt med delade miljövariabler och läst på om det. Olika processer gör att det blir drygt. Det samlade svaret var "dela via fil". Det funkar utmärkt på Ram-disken btw.

Av Sweedland
Skrivet av Mayth:

@Sweedland: Ja det är helt klart en dellösning. Och något som jag skrev ihop snabbt på en tågresa.

Så det går helt klart att utveckla vidare. Det bör förslagsvis till lite kod för logging och för att få det att rulla i bakgrunden. Om man nu inte vill anropa det från cron hela tiden dvs.

Att anropa via cron är dock ingen snygg lösing om man skriver det i python, då skulle jag välja att skriva det för att kolla med jämna mellanrum och uppdatera systemvariabeln därefter, sen anropa det vid boot efter network-taget med hjälp av systemd.

Bash scriptet som @wuseman skickade är åxå en trevlig lösning!

Mvh
Mattias

Fördelen med bash är att jag redan fuskar i bash. Ska jag ge mig in i Python också blir det en grej ytterligare att lära sig halvdant. "Ett steg i taget..."

Av Sweedland
Skrivet av Mayth:

@Sweedland:

Med risk för att denna tråd är gammal, problemet redan är löst och jag återupplivar tråden i onödan.

Är du bekväm med att köra python script så skulle detta antagligen lösa det du är ute efter:

import os import pyping def ping_chk(ip_addr): ping_resp = pyping.ping(ip_addr) return bool(ping_resp.ret_code == 0) os.environ['PING_WORKS'] = str(ping_chk('1.1.1.1'))

Väldigt kort och simpelt. Modifiera med den miljövariablel och ip/fqdn du vill ha och anropa med python2.7. Observera att detta behöver köras som root.

Mvh
Mattias

Nädå. Tråden är inte gammal. Det finns olika metoder att kolla nätet och din Python version är en del-lösning.
Tack.

Av Sweedland
Skrivet av perost:

@Sweedland: För FTP har du t.ex. klassikern libcurl (som du redan lär ha installerad på ett Linux-system), se t.ex. ftpupload bland exemplen.

Utmärkt. Det där ser ut som nåt jag ska läsa in mig på och testa.

Fy fasiken. Att läsa in sig på och få Linux, bash, PHP och nätverkande att fungera är som att lära sig ett nytt språk inför utlandssemestern om 1 vecka. Har bara sysslat med Embedded-programmering och assembler i alla år. Ha ha.

Av Sweedland
Skrivet av Djhg2000:

Du bör nog välja ett protokoll först, till exempel FTP. Någon särskild anledning till att du vill använda just C?

Protokollet är FTP. Varför det handlar om C är att programmet som ska skicka en fil vid en given tidpunkt är skriven i C och rullar i en Linuxmiljö. Det skulle kunna vara ett script som gör jobbet och desto mer jag tänker på det gillar jag den tanken. Det avlastar huvudprogrammet.
Annars är det sockets som gäller har jag förstått. Det finns mycket att googla fram har jag sett. Har aldrig behövt använda mig av 'sockets' tidigare så är ny på den delen.