SIDEBAR
»
S
I
D
E
B
A
R
«
One-liner: Decompress file and diff against another file
Dec 8th, 2016 by miki

Below is a handy shell one-liner for comparing the decompressed contents of a compressed file against a plain file. The purpose here is to test whether the compressed file is actually derived from compressing the plain file. This particular example is from a real life situation where log rotation by cron.daily on a Ubuntu server had begun failing. The situation is thought to be the result of an interrupted logrotate execution leaving a compressed (but non-rotated) intermediate file in the file system that prevented further log rotation on subsequent executions.

The command constructs a pipe between two process, specified using the | symbol (vertical line), to send the decompressed contents from gunzip stdout to stdin of the compare tool. The example uses diff as compare tool which is suitable for textual contents. You could use f.x. cmp instead if the contents is binary. Both diff and cmp interprets the file name “-” as meaning that input should be read from stdin.

$ gunzip --stdout /var/log/syslog.1.gz | diff --report-identical-files - /var/log/syslog.1
Files - and /var/log/syslog.1 are identical

The above uses long options for clarity, in a real life situation you would probably be using short options instead. That means -c instead of –stdout and s instead of –report-identical-files.

$ gunzip -c /var/log/syslog.1.gz | diff -s - /var/log/syslog.1
Files - and /var/log/syslog.1 are identical

 

(Danish language) S&S: Brug GUI-programmer på tværs af brugere og maskiner (kommander X-vinduer med DISPLAY)
Jan 12th, 2016 by miki

Fra en tråd i gruppen “Linux for begyndere” (https://m.facebook.com/groups/332217263612804?view=permalink&id=549911778510017)

Spørgsmål

Hvordan bliver man root bruger i linux mint ?? i grafisk brugerflade ??

Svar

For fremtidig reference:
Hvis man ønsker at køre en X-klient (et vilkårligt grafisk/GUI program) som root-brugeren, men vise dets vinduer på en X-server (typisk dit desktop environment/DE, som f.eks Gnome/KDE/Unity/lxde/xfce m.f.) der eksekveres af en ikke-privilegeret bruger kan man gøre som følger:

1) som X-server-brugeren kør kommandoen ‘xhost +’ i en grafisk konsol/terminal. Dette tillader at alle brugere og maskiner må vise vinduer på X-serveren (ja, X er en netværksprotokol). Tilladelsen bevares indtil X-serveren genstartes, eller den trækkes tilbage med ‘xhost -‘.

2) som root (su/sudo) eksekver det ønskede GUI-program, med specifikation af hvilken X-server og hvilket display dets vinduer ønskes vist på i DISPLAY environment-variablen (ja, det er muligt at køre flere separate X-servere/displays på samme maskine).
Simpleste form med visning på display 0 på den lokale maskine vil være (med xterm-konsollen som eksempel) ‘DISPLAY=:0 xterm’. Vil man vise vinduet på en anden maskines X-server skal IP-adressen blot angives før ‘:’, som f.eks.: ‘DISPLAY=192.168.1.10:0 xterm’ (det er stadig en xterm der afvikles på den lokale maskine, vinduet vises blot på en ekstern X-server (ja, det kan være farligt, pas på).

Bemærk at man med sudo skal passe på at sætte env-vars i den rigtige shell. F.eks. vil sudo direkte foran ovenstående ikke virke da sudo afskærmer env af sikkerhedsgrunde. I stedet vil man kunne benytte følgende trick: sudo bash -c ‘DISPLAY=:0 xterm’ (enkelt citationstegn til -c er vigtigt).

[Danish language] S&S: brug hele SD-kortet (udvidelse af Linux/ext-filsystem)
Sep 10th, 2015 by miki

Nedenfor et spørgsmål jeg kastede mig ud i at svare på i “Linux for Begyndere“-gruppen på Facebook, se den originale tråd på facebook.com/groups/332217263612804/permalink/510936462407549/.
For fremtiden vil jeg forsøge at samle et sammenkog af den hjælp og vejledning jeg yder på dansk i diverse roller i Spørgsmål & Svar-kategorien her på bloggen. Forhåbentlig vil andre kunne bruge det til noget, og i det mindste vil jeg selv kunne bruge det som reference ;).

Spørgsmål

Har installeret Debian 8 på min UDOO.  Kan nogen fortælle mig, hvorledes jeg udvider filsystem, til hele SD-kortet?

Svar

Uden at jeg kender UDOO nærmere, så er der uanset distribution og arkitektur to trin i processen at udvide en ext{2,3,4}- partition.

Uagtet hvad forskellige guides siger, kan dette i dag gøres live/online/realtime, dvs. uden at skulle umount-e filsystemet:
  1. Udvid pågældende partition i partitionstabellen for block-devicet hvor den ligger, dette kræver selvsagt at der er fysisk plads på disken lige efter den eksisterende. Med “fdisk /dev/<blockdevice>” på kommandolinjen indbærer det konkret at ‘d’-elete partitionen, og derefter lave en ‘n’-ew. Det vigtige er at start-sektoren på den nye partition er identisk med den gamle. Ændringer kan kontrolleres på ethvert tidspunkt ved at ‘p’-rinte partitionslayout. Laver man fejl kan man altid ‘q’-uitte og starte fdisk igen, det nye layout bliver først skrevet til disken når man er tilfreds og ‘w’-riter til disken. Kør herefter ‘partprobe’ (eller genstart), for at opdatere kernens partitionstabel-datastrukturer, ellers vil kun det gamle layout være synligt for applikationer.
  2. Udvid filsystemet på pågældende partition med “resize2fs /dev/<partition>”. Angiver du ikke nogen filsystemstørrelse vil filsystemet udvides til at udfylde hele partitionens størrelse som angivet i partitionslayoutet, hvilket som oftest er det man ønsker.
Typiske værdier for <blockdevice> er “sdb”, “hdb” eller “mmcblk0” afhængig af hvilket interface disken er tilsluttet (sata, pata, usb).
Typiske værdier for <partition> er tilsvarende “sdb2”, “hdb2” eller “mmcblk0p2”.
Backup af vigtig data og ekstrem omhyggelighed ved valg af enheder er “en god ting”(TM) når man roder på dette niveau.
Subversion on Debian ARM: commit failing with space in URL
Sep 16th, 2014 by miki

Working on a Beaglebone Black based product, running the latest Debian GNU/Linux system image (bone-debian-7.5-2014-05-14-2gb.img) from the BB HQ at beagleboard.org I just had the following strange experience.

Using Subversion I wanted to commit a change to a file made locally on the BBB. The file resided  in a working copy of a repository on which I had done the initial work on my x86_64 laptop. The working copy was checked out and updated on the BBB without any problems, but comitting I got the following error:

debian@beaglebone:~/VCAS_FR$ svn ci rc.local -m"Append to vncserver.log."
Authentication realm: <https://svn.xx.xx> Subversion Repository
Password for 'yaya': 
Sending        rc.local
Transmitting file data .svn: Commit failed (details follow):
svn: File not found: transaction '414-1', path '/trunk/BBB%20deployment/rc.local'
debian@beaglebone:~/VCAS_FR$

This failed repeatedly, and checking out a fresh new working copy exhibited the same result.

For the fun of it, because file name issues are long gone in my everyday computing life, I tried to remove the space from the directory path. And voila, unexpectedly it succeeded!

debian@beaglebone:~/VCAS_FR$ svn ci rc.local -m"Append to vncserver.log."
Authentication realm: <https://svn.xx.xx> Subversion Repository
Password for 'yaya': 
Sending        rc.local
Transmitting file data .
Committed revision 416.
debian@beaglebone:~/VCAS_FR$

Without spaces, things actually did work. Apparently there’s an issue with ARM built subversion and repositories containing spaces.

URL before

debian@beaglebone:~/VCAS_FR$ svn info | grep URL
URL: https://svn.xx.xx/trunk/BBB%20deployment
debian@beaglebone:~/VCAS_FR$

URL after

debian@beaglebone:~/VCAS_FR$ svn info | grep URL
URL: https://svn.xx.xx/trunk/BBB_deployment
debian@beaglebone:~/VCAS_FR$

Investigating a bit further narrowed down that the Debian distribution uses an old (old, old) subversion 1.6.17 release from 2009:

debian@beaglebone:~/VCAS_FR$ svn --version
svn, version 1.6.17 (r1128011)
   compiled Mar 15 2014, 21:37:31

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

Probaly, this has been fixed since, a quick investigation in svn issue tracker revealed no open issues regarding this. I’ll look further into this later, and of course report it appropriately if this is an unknown issue.

But as you see, you can still experience basic issues on the latest and greatest stuff out there. Be wary!

»  Substance:WordPress   »  Style:Ahren Ahimsa
© 2016 Mikini Services