The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘*nix-tools’ Category

Getting the IP addresses of gmail MX servers – via Super User – dig isn’t enough

Posted by jpluimers on 2017/03/06

I needed the current IP-addresses of the gmail MX server (don’t ask the details; but it has to do with the brain-dead TP-LINK ER5120 configuration possibilities).

This is the command I finally used:

dig @8.8.8.8 +short MX gmail.com | sed "s/^[0-9]* //g" | sed "s/.$//" | xargs -I {} dig @8.8.8.8 +short {} | uniq | sort

Basically it’s a three stage sequence which had to work on OS X as well as Linux using a bash shell:

  1. Use the Google DNS servers (either 8.8.8.8 or 8.8.4.4)
  2. Get the FQDNs of MX records of gmail.com which are the mail servers for GMail.
  3. Translate these in IPv4 addresses
  4. Filter into a distinct list (just in case entries are duplicate: they aren’t yet, but might be)

The basics of the above are about using dig to get short (or terse) answers with as little (but still to the point) information as possible.
Read the rest of this entry »

Posted in *nix, *nix-tools, DNS, Power User | 1 Comment »

fixing a Mac home `brew update` that has permission errors (after that I could install plantuml)

Posted by jpluimers on 2017/01/26

I had this occurring on my system:

RetinaMBPro1TB:~ jeroenp$ brew update
error: unable to unlink old 'Library/ENV/pkgconfig/10.11/libcurl.pc' (Permission denied)
error: unable to unlink old 'Library/ENV/pkgconfig/10.11/libxml-2.0.pc' (Permission denied)
error: unable to unlink old 'Library/ENV/pkgconfig/10.11/sqlite3.pc' (Permission denied)
To restore the stashed changes to /usr/local run:
  'cd /usr/local && git stash pop'
Already up-to-date.

This is how I solved it:

RetinaMBPro1TB:~ jeroenp$ ls -al /usr/local | grep -w Library
drwxr-xr-x+ 11 jeroenp  admin   374 Mar  9 19:33 Library
RetinaMBPro1TB:~ jeroenp$ sudo chown -R $USER /usr/local/Library/
Password:
RetinaMBPro1TB:~ jeroenp$ brew update
To restore the stashed changes to /usr/local run:
  'cd /usr/local && git stash pop'
Updated Homebrew from d32996d to 638d755.
==> New Formulae
...
==> Updated Formulae
...
==> Renamed Formulae
...
==> Deleted Formulae
...
RetinaMBPro1TB:~ jeroenp$ 

The above solution is based on major python problems · Issue #48301 · Homebrew/homebrew

After that, I could install plantuml (which requires java, just so you know) so now I can create SVGs from it locally:

plantuml -tsvg PSO.network-diagram.PlantUML.txt

Note I had to edit the formula so it installs plantuml-8037 or higher (the git version back then installed plantuml-8031) as it fixed a namespace bug. Since plantuml releases often, be prepared to do some version fiddling.

–jeroen

Posted in *nix, *nix-tools, Apple, Development, Diagram, Home brew / homebrew, Java, Java Platform, Mac, Mac OS X / OS X / MacOS, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, OS X 10.10 Yosemite, OS X 10.8 Mountain Lion, OS X 10.9 Mavericks, PlantUML, Power User, Software Development, UML | Leave a Comment »

linux port forwarding to external ip – Google Search

Posted by jpluimers on 2017/01/20

For my Link Archive via linux port forwarding to external ip – Google Search:

Need to look at this more closely, but it looks like you need PREROUTING, FORWARD and POSTROUTING and two NATs (DNAT and SNAT), as this graph from Port Forwarding Using iptables – SysTutorials shows:

PACKET IN
    |
PREROUTING--[routing]-->--FORWARD-->--POSTROUTING-->--OUT
 - nat (dst)   |           - filter      - nat (src)
               |                            |
               |                            |
              INPUT                       OUTPUT
              - filter                    - nat (dst)
               |                          - filter
               |                            |
               `----->-----[app]----->------'

–jeroen

Posted in *nix, *nix-tools, Internet, Internet protocol suite, iptables, Linux, openSuSE, Power User, routers, SuSE Linux, TCP | Leave a Comment »

Displaying Linux Log files with journalctl

Posted by jpluimers on 2017/01/16

journalctl is a systemd utility that allows the journal to be queried. journalctl command examples for displaying system log files on a systemd Linux system. How to enable persistent journal entries.

Source: Displaying Linux Log files with journalctl

Which reminds me I’ve quite some journald research to do, so here are some links for my link archive:

–jeroen

via:

Posted in *nix, *nix-tools, journalctl and journald, Linux, openSuSE, Power User, SuSE Linux | Leave a Comment »

whatismylocalip alias (actually more like whataremylocalips) and some sed links

Posted by jpluimers on 2017/01/10

Getting the local IP (actually IPs, but most hosts only have a single IP):

# OS X:
alias whatismylocalip='ifconfig | sed -En '\''s/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'\'''
# Linux:
alias whatismylocalip='ip a | sed -En '\''s/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'\'''

I got them via bash – How to I get the primary IP address of the local machine on Linux and OS X? – Stack Overflow

Mac OS X and BSD have ifconfig, but most Linux distributions don’t use ifconfig any more in favour of iproute2, so you use ip a (which is shorthand for ip address show) there.

Their output is similar enough for the sed to work, though. Which surprised be because I didn’t know about the -E option (it lacks in the manual Linux page but it is in the Mac OS X one) which enables POSIX extended regular expressions. In Linux this is documented as -r, but -E also works.

I learned this through the Sed – An Introduction and Tutorial which compares the various versions of sed which also explains about the -n doing no printing.

–jeroen

Posted in *nix, *nix-tools, Apple, bash, bash, Development, Linux, Mac, Mac OS X / OS X / MacOS, Mac OS X 10.4 Tiger, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, Mac OS X 10.7 Lion, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, openSuSE, OS X 10.10 Yosemite, OS X 10.8 Mountain Lion, OS X 10.9 Mavericks, Power User, Scripting, Software Development, SuSE Linux, Tumbleweed | Leave a Comment »

#220 feature `SKIP_FIRMWARE` by jpluimers · Pull Request #221 · Hexxeh/rpi-update

Posted by jpluimers on 2016/12/13

Reminder to self: Fix #220 feature SKIP_FIRMWARE by jpluimers · Pull Request #221 · Hexxeh/rpi-update

It’s bash. How hard can it be.

(no that was a rhetorical question).

–jeroen

Posted in *nix, *nix-tools, Debian, Development, Hardware Development, Linux, openSuSE, Power User, Raspberry Pi, Raspbian, SuSE Linux, Tumbleweed | Leave a Comment »

18 Useful Commands to Get Hardware Information on Linux – Linuxslaves

Posted by jpluimers on 2016/12/05

Quick look at commands that can be used to gather hardware information such as cpu, disks, memory, partition, peripherals etc on Linux OS based systems

Source: 18 Useful Commands to Get Hardware Information on Linux – Linuxslaves

Covered commands (the article has no index and the headings in it don’t have an id tag, so I linked them to other relevant URLs if I could find them):

  1. lshw
  2. lscpu
  3. lspci
  4. lsusb
  5. lsblk
  6. fdisk
  7. dmidecode
  8. /proc files
  9. free
  10. lsscsi

via:

–jeroen

Posted in *nix, *nix-tools, Linux, openSuSE, Power User, RedHat, SuSE Linux, Tumbleweed, Ubuntu | 2 Comments »

Apache error 503 when using ProxyPass:

Posted by jpluimers on 2016/12/05

When using ProxyPass (for instance within a Location) in Apache and you get an http error 503 (service unavailable), then usually the page/service to which the proxy directs to is dead.

I had this when shellinabox (forked from the old Google code repo) died on me.

In addition, ensure your ProxyPass statements contain a slash at the end your you will get a http error 502  (bad gateway):


Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /account/login.
Reason: DNS lookup failure for: 192.168.71.46:8080account
Additionally, a 502 Bad Gateway error was encountered while trying to use an ErrorDocument to handle the request.


<Location /shell>
ProxyPass http://localhost:4200/
Require all granted
</Location>
<Location />
ProxyPass http://192.168.71.46:8080/
Require all granted
</Location>

view raw

ProxyPass.conf

hosted with ❤ by GitHub

–jeroen

via:

Posted in *nix, *nix-tools, Apache2, Power User | Leave a Comment »

Inspecting/unpacking a Linux rpm file on Mac OS X

Posted by jpluimers on 2016/11/18

You need this statement to unpack an rpm file on Mac OS X without having rpm installed:

rpm2cpio ##filename.rpm## | cpio -idmv

This will make rpm2cpio unpack the rpm file in the current directory using these cpio options:

  • i – use the rpm2cpoio as unput
  • d – created directories when needed
  • m – set modification timestamps from the archive
  • v – verbose filenames to stderr

cpio is already part of the Mac OS X system.

You can get rpm2cpio through homebrew by typing brew install rpm2cpio which will likely also download he xz dependency.

–jeroen

via: rhel – Open a RPM on a Mac? – Unix & Linux Stack Exchange

Posted in *nix, *nix-tools, Apple, iMac, Linux, Mac, Mac OS X / OS X / MacOS, MacBook, MacBook Retina, MacBook-Air, MacBook-Pro, MacMini, OS X 10.10 Yosemite, OS X 10.11 El Capitan, OS X 10.9 Mavericks, Power User, rpm | Leave a Comment »

tmux attach to named session or create when it doesn’t exist yet – via: How to start tmux with attach if a session exists – Unix & Linux Stack Exchange

Posted by jpluimers on 2016/11/16

In my alias list:

alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"

Via User Wesley Baugh – Unix & Linux Stack Exchange who answered:

If naming your session is okay, then it’s easy to do with the new-session command:

tmux new-session -A -s main

where main is the session name that will be attached to or created if needed.

From man tmux

 The -A flag makes new-session behave like attach-session if session-name already exists; in this case, -D behaves like -d to attach-session.

–jeroen

Source: How to start tmux with attach if a session exists – Unix & Linux Stack Exchange

Posted in *nix, *nix-tools, Linux, openSuSE, Power User, SuSE Linux, tmux | Leave a Comment »