Inlägg

Inlägg som Sweedland har skrivit i forumet
Av Sweedland

Nödvändigt att update/upgrade en RPI?

En fråga; Om en RPI står o jobbar och man kopplar upp sig ibland med wifi o kommunicerar med den, ska RPI:n behöver uppdateras i alla fall? Den har ju ingen kontakt med omvärlden mer än med min laptop/telefon.
Argumentet till att uppdatera kan jag tänka mig är pga att jag ansluter mig med dator mot dess webserver och nyttjar PHP-sidorna ibland. Om nåt "protokoll" ändras på datorn så bör ju motsvarande ske i RPI:ns apache/PHP. Men hur långsökt är det?

Av Sweedland

@mini-ryttge:
Du skriver "Annars backa enbart ut config filerna och tryck in dem i den nya via SSH?"

Ja, det är ju lika intressant det. Men då vill jag ju få med nyinstallationer (apache2, vissa editors, andra program jag minns o glömt av etc) också. Det är där min knowhow brister. Jag är osäker var "programmet" läggs och var allt hamnar.

Ska läsa länken du skickade med..
edit: Den där länken ska jag läsa ingående... thanx

Av Sweedland

@Sweedland:
Epilog
Nya 16G korten kom idag. 16G från element14 med NOOBS på. Jag stoppade i det kortet i SD-läsaren o använde Win32DiskImager. Den skriker om att kortet är "för litet men img-filen verkar tom på data". Jag svarar "Ja" på att kopiera över datat på SD-kortet.
Detta kort startar dock upp. Är det formateringen som spelar roll? Eller nåt annat?

Av Sweedland
Skrivet av Snövit:

Sedan kopierar jag den krympta delen till card-copy-1.img med dd kommando. Tillbaka med det gamla SD-kortet in i pajen och DÄR förstorar jag partitionen igen via rasp-config som vanligt.

Kan rasp-config hantera partitioner? Det visste jag inte. Har inte hunnit med allt än.

Jag gör som följer:
1) Säk.kopierar en img med W32DiskImager till nån extern HD
2) Stoppar tebax SD i RPI:n och krymper med Gparted.
3) Kopierar SD-kortet med dd till ett USB-minne som är istoppat i RPI:n
4) Använder rasp-config för att expandera tillbaka SD-kortet till normal storlek
5) Tar USB-minnet med krympta img-filen och använder Win32DiskImager och dumpar över det till ett nytt SD-kort
6) Tar RPI nr2 och använder nya SD-kortet samt expanderar det till normal storlek (eller vad nu det ny SD-kortet har för stlk)

Tack så hemskt mycket för tipset. Ska testa det. Just nu har jag bara en img som INTE jag kan göra nåt åt så vitt jag vet. Men får nya minneskort med samma typ/modell så den img:n ska nog gå på det SD-kortet. Sen ska jag testa mot det andra kortet som inte img:n funkar i.

Av Sweedland

Snövit:
Metoden att använda en img är ju att föredra men det blir problem om det är minsta skillnad mellan SD-korten/fabrikaten. Därav tänkte jag att jag kopierar "allt". Detta "allt" är med en viss modifikation. Egentligen är det där det finns script, apache2 samt PHP och givetvis Home-katalogen. Eftersom jag är till viss del osäker vilka kataloger/-träd som är aktuella för min del så tänker jag "allt".

Tillbaks till Snövit:
Jag ska testa med att krimpa "source" med Gparted. Då bestämmer JAG storleken på img-filen, inte storleken på just det SD-kortet. Ska jag tolka det så? Sen dd till "target" och sen förstora upp partitionen igen med Gparted. Det räcker ju att krimpa lite bara om man så vill. Nån Gig eller så....Eller ner till 7G (om det nu går) så man får in grejerna på ett 8G-kort om source är 16G.

Det låter som en framkomlig väg. Du berör just det som jag haft problem med också - olika tillverkare på SD-kort. :-/

Tack!

Av Sweedland
Skrivet av xfade:

RPI'n måste boota från SDkortet.
När den väl bootat kan man ladda OS från något annat ställe, t ex från usbminnet.

Så tror det är svårt att lägga tillbaka kopian på sdkortet i RPI'n????

Om metoden blir så här i stället då:
1) "Target"-RPI;ns SD-kort stoppas in i en SD-kortsläsare och sen vidare in i "source"-RPI:ns USB-port
2) "Source"-RPI:n gör en CP (eller nåt annat kommando) så allt förs över till "Target"-RPI:ns SD-kort
3) Starta upp nya RPI:n med "Target"-SD-kortet

Bör inte detta fungera då?
Det är ju punkt 2 jag funderar främst på. Dels, givetvis om metoden fungerar, men sen om det "duger" med cp. Följer rättigheter o länkar o annat med så det blir en "exakt" kopia?

Jag ser att dd-kommandot är nåt jag måste studera...

Av Sweedland

Total backup på RPI. Hur?

Om jag vill att en RPI3B med kod och allehanda färdigconfiggade funktioner ska kopieras över till en ny RPI har jag använt mig av kloning, dvs, en img. Tryggt o bra just då. Det funkade bra fram tills jag införskaffade annat märke på SD-kortet (se annan tråd).
Jag måste ha en annan metod så för min del tänker jag mig:

1) formattera ett extern Minneskort i en valfri USB-sockel på RPI:n
2) Ange nåt Linux-kommando så hela RPI:ns kod med OS o allt förs över till stickan.
3) Ta nya uppstartade RPI:n (samma modell) o stoppa i stickan o kopiera över till nya.
4) Restart, Nya RPI:n är som första.

5) Om nån av dessa två ändras (dvs, jag ändrar i kod eller nån config) så ska jag kunna synca över förändringen till den/de andra via stickan. Men detta är just nu överkurs. Jag anar rsync dock..

Det är punkt 2 och 3 ovan som jag behöver hjälp med. Använder jag cp eller rsync och motiveringen till valet? Är metoden att kopiera helt galen eller? Det är ju def. inte nåt jag skulle gjort på en win7 maskin exempelvis...

Jag är osäker på vilka folders som ska kopieras (och exkluderas)...

Av Sweedland

Det finns nåt kommando som Linux har som kollar flaggorna. Attans. Jag borde ha tagit en riktig backup av hela SD-kortet och inte en image. Men jag var/är osäker på hur det görs.

Av Sweedland

En fråga om 16G-bits SD-kort. Är de olika i storlek? Har en img som funkat bra o ladda mellan olika SD-kort av samma fabrikat (16G) men nu köpte jag ett Kingston 16GB men då stimmade Win32 DiskImager att det nya kortet var för litet. Fattades lite...

Req: 31422464 sectors
Available: 30449664 sectors
Sector size: 512
FAT32

Jaha?

Av Sweedland

Det är därför jag har en RAM-disk på RPi:n.

Av Sweedland
Skrivet av giplet:

Dessa funkar. Jag har för mig att jag fick fram att rPi max kan läsa och skriva i 40MB/s eller däromkring, så upp till dit hjälper det med snabbare minnen, men inte över.

Men handlar det inte mycket om tillförlitligheten också? Inte bara speeden. Skriv/läsfel.

Av Sweedland

Tyvärr var lagersaldot lite halvrisigt. Men tackar för tipset/tipsen!

Av Sweedland

16G SD-kort för RPi?

Hej,
Har nån här provat ut bra SD-kort för Raspberry? ELFA har ju tomt på lagerhyllorna...

Sen söker jag en lättsmält "Linux för dummies" eller nåt sånt. Vore bra å ha nåt att kvällsläsa.

Av Sweedland

Har testat scriptet och det fungerar utmärkt. Testade med att lägga in exit(44) i koden och den startade om. Mitt script som jag angav först i tråden gav en massa "bioset" när jag kollade med "top" sist. Jag vet inte vad "bioset" kommer av men ska googla. Jag kan föreställa mig att det är nån form av trådar som inte stängts ner riktigt - men här är jag på tunn is.

Av Sweedland

Ne. Du har rätt. Jag tänkte på det när jag åkte ner. ASCII är det inte.

Hela systemet med server/klient är under full kontroll och filnamn o innehåll är styrt av mig.
Jag ska läsa länken. Tack igen.

Av Sweedland

Ok. Du tänker så. Filen är en enkel ascii med svenska tecken btw.
Jag hade problem med att filen skrevs till klienten men även buffert från html-koden. Så jag googlade lite och fick det där som exempel. Har inte grottat ner mig mer i det. Det började fungera så jag lade det åt sidan fram tills jag stötte på patrull med åäö.

Du har bakat om koden lite. Jag inser ju att det funkar också. Varför jag använder "no-cache" beror väl på att jag haft problem med att web-läsaren vägrar läsa om koden...f*n vet. Mycket har gått på rus ska du veta..
fopen användes för jag är van det sen C-programmen...byter gärna ut det.

Jag ska åka ner nu o testa lite.
Tack.

//edit
Åkte ner o testade. Har bakat om koden enligt sista inlägget OCH använt mig nu av mb_convert. Testat och det fungerar! TACK << 8.

Av Sweedland
Skrivet av KeVVa:

@Sweedland: Måste du starta om apache också när ditt program kraschar?

Annars kan du egentligen bara köra en until loop.
Att ligga och kolla i en while loop känns oerhört ineffektivt och slöseri med resurser.

until myserver; do echo "Server 'myserver' crashed with exit code $?. Respawning.." >&2 sleep 1 done

http://stackoverflow.com/questions/696839/how-do-i-write-a-ba...

edit:
Vet inte om det är korrekt syntax, men något i den stilen borde fungera

until ./read_can; do echo "startar om server och program!" sudo service restart apache2 sudo ./read_can done

Jag läste Stackoverflow-länken. Klart som korvspad. Utmärkt sida!

Skickades från m.sweclockers.com

Av Sweedland

Jag trodde att programmet "read_can" stannade upp scriptet i while-satsen och när/om det blir en exit så hoppar den ur och fortsätter? Eller? C-programmerare som jag i grunden är så kanske jag har fel...Är newbee på bash!

Att jag startar om Apache2 är väl en ren säkerhetsåtgärd. Har nåt av mina PHP spårat ur så är det bra att starta om servern...tror jag. Har dock en timeout på den...tror jag.
Som du ser så tror jag mycket o det är för jag har inte hunnit läsa in mig på allt.

Tacksam för input.

Av Sweedland

Jag kan kopiera in de väsentliga delarna av koden. Det är mycket mumbo-jumbo förövrigt.

Jag använder nl2br() när jag skickar filen till skärmen.

$out_put = nl2br(file_get_contents(RAPPORT_KATALOG.RESULTAT_RAPPORT_TEMP)); echo "<div style = 'font-family:courier;font-size:75%;color:#4444FF;'>$out_put</div>";

I html-delen:

<meta http-equiv="Cache-control" name="viewport" content="width=device-width, initial-scale=1, No-Cache">

Här kan användaren se rapporten på skärmen. Vill han ladda ner den så kan han klicka på en knapp så laddas en annan PHP in som ser ut som följer:

$fsize= filesize($rappCSVNamn); header('Contect-Description: File Transfer'); header('Content-type: text/csv; charset=UTF-8'); header('Content-disposition: attachment; filename="'.$rappCSVNamn.'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-length: '.$fsize); ob_clean(); flush(); $fd=fopen($rappCSVNamn,"r"); while(!feof($fd)) { $sss=fgets($fd); $sss = str_replace(["_"], [" "], $sss); echo $sss; #här vill jag använda converteringen!! //echo "<div style = 'font:Courier;color:#ff0000'>$out_put</div>"; } fclose($fd); ob_start();

Du kan säkert hitta fler galenskaper här men pga tvång, tidsnöd o okunskap så blir det så här. Men skam den som ger sig!

Tack.

Av Sweedland

Bash script restart en daemon

Hej (igen),
Har ett C-program i en Raspberry (Linux) som måste leva. Har ibland märkt att programmet kan hoppa ur med Exit 139 och vet inte riktigt var det kommer ifrån. Har för lite tid också för att gå djupare. Kanske också okunnig i Linux - än.
Därför har jag knåpat ihop ett script och undrar om det duger för husbehov? Svagheter? Nackdelar? Blir det en rest kvar efter varje omstart?
Har tänkt lägga scriptet autostart efter reboot. Nåt där att tänka på?

Tacksam för hjälp.

Scriptet är som följer:

#!/bin/bash sudo ./read_can while [ $? > 0 ] #$? är efter googlande returvärdet. do echo "startar om server och program!" sudo service restart apache2 sleep 10 sudo pkill read_can #Kanske onödlgt. sudo ./read_can #Omstarten.. done