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’ Category

Some postfix notes

Posted by jpluimers on 2020/10/15

Postfix has documentation on primary MX and secondary MX, but not on tertiary MX.

If the primary MX is down, you have a series of secondary MX and tertiary MX that configured the same way, MX DNS priority for primary, the series of secondary MX and tertiary MX have increasing numbers, and the primary MX goes down, then senders can get “too many hops” as secondary and tertiary MX are looping.

I had a hard time finding a good and easy solution as these queries do not return many meaningful results:

Here are some links that helped getting this solved:

  • [WayBack] Postfix Frequently Asked Questions: What does “Error: too many hops” mean?

    Short answer: this message means that mail is probably looping. If you see this after you turned on Postfix content filtering, then you have made a mistake that causes mail to be filtered repeatedly. This is cured by appropriate use of content_filter=header_checks=, and body_checks=.

    Long answer: the message has too many Received: message headers. A received header is added whenever Postfix (or any MTA) receives a message. A large number of Received: message headers is an indication that mail is looping around.

    Side comment: email uses the opposite of the technique that is used to avoid IP forwarding loops. With IP, the sender sets a TTL (time to live) field in the IP header. The field is decremented by each router. When the TTL reaches zero the packet is discarded and an ICMP error message is returned to the sender.

  • [WayBack] Error: too many hops (in reply to end of DATA command) · Issue #713 · mail-in-a-box/mailinabox · GitHub

    In case you or anyone else was/is wondering about the mydestination = localhost thing, the reason it has to be set to just localhost is because MIAB uses Postfix’s “virtual domain hosting” (http://www.postfix.org/VIRTUAL_README.html) support. Per the documentation for mydestination at http://www.postfix.org/postconf.5.html#mydestination:

    Do not specify the names of virtual domains – those domains are specified elsewhere. See VIRTUAL_README for more information.

    (in the context of MIAB every domain is a virtual domain).

In my case a series of these:

Received: from mwgp.xs4all.nl (mwgp.xs4all.nl [80.101.239.92])
    by fiber24315337242.heldenvannu.net (Postfix) with ESMTP id 26395200FE
    for <jeroen@pluimers.com>; Fri, 29 Jun 2018 11:01:02 +0200 (CEST)
Received: from fiber24315337242.heldenvannu.net (unknown [37.153.243.246])
    by mwgp.xs4all.nl (Postfix) with ESMTP id 077A5E937
    for <jeroen@pluimers.com>; Fri, 29 Jun 2018 11:01:02 +0200 (CEST)

Specifying the transport will likely help me solve this problem:

This all came down to editing /etc/postfix/transport adding lines for each relayed domain like this one:

example.org    smtp:[mx-a-record.example.org]

Lines like it direct to use the smtp transport and use a specific host (normally, the relay transport is being used).

After this:

# postmap /etc/postfix/transport
# rcpostfix reload

I choose not to configure [WayBack] Postfix Configuration Parameters: relay_recipient_maps, but might if I had an automated way of replicating lists of valid (and invalid) users.

Another option was confirmed at [WayBack] Software-update: Postfix 3.4.0 / 3.3.3 / 3.2.8 / 3.1.11 / 3.0.15 – Computer – Downloads – Tweakers by [WayBack] menocchio. Thanks!

Dat is volgens mij eenvoudig op te lossen met relay_transport of transport_maps. Zie ook: Postfix transport table format.

Daarmee dwing je de secondary servers de mail altijd af te willen leveren bij de primary server (en dus niet bij een andere secondary). En als de primary niet online is, dan wacht ie netjes tot dat wel het geval is :-)

Bijvoorbeeld:
relay_transport = smtp:[primarymx.domain.tld]

Likely relevant: [WayBack] The Book of Postfix

Maybe relevant in the future:

Found on my hunt for the above:

Try not to make typo’s: [WayBack] postfix appears not finding MX records or host names from DNS

Interesting thought, but not sure how smart SPAM bots are now: [Archive.is] Spam relaying through secondary MX… – Google Groups

To archive this:

  1. Rename from
  2. To
  3. Then save in Archive.is

–jeroen

Posted in *nix, Communications Development, Development, DevOps, DNS, etckeeper, Infrastructure, Internet, Internet protocol suite, Linux, Power User, SMTP | Leave a Comment »

Logging request body in HAProxy · GitHub

Posted by jpluimers on 2020/10/05

I will likely need this one day: [WayBack] Logging request body in HAProxy · GitHub.

Related:

–jeroen

Read the rest of this entry »

Posted in *nix, Development, HAProxy, Power User, Software Development | Leave a Comment »

Rebooting a Linux server unattended – twm’s blog

Posted by jpluimers on 2020/09/21

[WayBack] Rebooting a Linux server unattended – twm’s blog:

/sbin/shutdown -r now

Simple, but I keep forgetting where Linux has short/long command options and short/long verbs.

–jeroen

Posted in *nix, *nix-tools, Debian, Linux, OpenShift, openSuSE, Power User, Raspbian, RedHat, SuSE Linux, Tumbleweed, Ubuntu | Leave a Comment »

On my list of things to figure out: how to force fsck with opensuse Tumbleweed on Raspberry Pi 3

Posted by jpluimers on 2020/09/11

Hopefully the below links will eventually get me further in figuring out how to force fsck with opensuse Tumbleweed on Raspberry Pi 3.

For now, I just reinstalled an SD card (my Mac didn’t support the file systems and I did not have time and equipment with me to mount it to another opensuse based device).

–jeroen

Posted in *nix, Linux, openSuSE, Power User, SuSE Linux, Tumbleweed | Leave a Comment »

I need to dig into IPP / driverless printer confuguration

Posted by jpluimers on 2020/09/07

It looks like I need to learn about IPP and driverless based on [WayBack] TIL that your Linux desktop can probably use your somewhat recently made printer, efficiently, with all major features exposed, without needing to download a ton of vendor shitware, without needing to find a PPD file in the depths of hell, without needing to pay extra for explicit PostScript 3 support, and without needing to accept that it will do 0.2 instead of 20 pages per minute because the in-printer PostScript rasterizer runs on a Z80…. – Maik Zumstrull – Google+.

So here are some links:

Via: [WayBack] TIL that your Linux desktop can probably use your somewhat recently made prin… – Kristian Köhntopp – G+

When adding my printer in the Chrome tool, it can properly detect it:

Printer information
Printer make/model: OKI-MC342-36855D
Printer state: idle
Accepting jobs: true
IPP server version: 1.1
Supports PDF natively: true
Supports PWG raster: false
Supports Postscript: true
Supports Unirast: true
Supports application/octet-stream: true
CUPS server: No
Compatability report: PASS Printer should be compatible – try printing

–jeroen

Posted in *nix, *nix-tools, Hardware, OKI C332, OKI Printers, Power User, Printers | 2 Comments »

bash – convert comma separated values into a list of values using shell script – Stack Overflow

Posted by jpluimers on 2020/09/07

For a simple comma separated list (no quotes), I was expecting a sed script (and indeed it is possible), but tr is more elegant:

Use tr to change , into newlines:

tr , "\n" < list.txt

See https://en.wikipedia.org/wiki/Tr_(Unix)

Source: [WayBack] bash – convert comma separated values into a list of values using shell script – Stack Overflow.

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, Power User, Scripting, Software Development | Leave a Comment »

find – display only files starting with . (hidden) – Unix & Linux Stack Exchange

Posted by jpluimers on 2020/08/21

find . -type f -name '\.*' -print

Must work if you want list every hidden file down in the directory hierarchy.

This sort of works on Linux, but fails on VMware ESXi (on Linux it only works when applying -maxdepth 1, deeper levels fails because they list all files where the top directory starts with a .):

If you want hidden files and hidden directories, without . and .. :

find -regex '\./\..+' -print

This works on both Linux and VMware ESXi:

If you want hidden files and hidden directories, without . and .. :

find . \( -type f -o -type d \) -name '\.*' -print

Based on:

–jeroen

Posted in *nix, *nix-tools, bash, bash, Development, Power User, Scripting, Software Development | Leave a Comment »

Tracing a packet journey using Linux tracepoints, perf and eBPF | Yet another enthusiast blog!

Posted by jpluimers on 2020/08/21

As I need this one day: [WayBackTracing a packet journey using Linux tracepoints, perf and eBPF | Yet another enthusiast blog!

Via: [WayBack] Great read about bpf – Kristian Köhntopp – Google+

–jeroen

Posted in Linux, Power User | Leave a Comment »

Dirvish

Posted by jpluimers on 2020/08/17

I think it was Thomas Mueller pointing to this, but I’m not sure as I found it in a browser tab from long ago: [WayBack] Welcome to Dirvish

Dirvish is a fast, disk based, rotating network backup system.

With dirvish you can maintain a set of complete images of your filesystems with unattended creation and expiration. A dirvish backup vault is like a time machine for your data.

Dirvish was originally created by jw schultz .

Before starting, I want to read these:

–jeroen

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

Comparing versions with wildcards and without them (for instance for semantic versioning)

Posted by jpluimers on 2020/08/12

For a project I’m going to be in need to compare version numbers.

I’m not sure yet if I need wildcards, or can leave them out (but for partial semantic versioning, I might need them).

Below a bunch of links that should get me started.

From a quick glance: versioning is hard, comparing even harder.

On versioning in general

Numeric versioning (usually without wildcards):

On semantic versioning (SemVer for short):

On the C# Version class (which handles most of semantic versioning except: leading zero’s, very large numbers, non-numeric release specifiers)

Interesting idea, but not sustainable: using floating point values to compare versions:

On wildcards:

Via: [WayBack] Anyone tips for a TVersion structure that supports at max quad digits or wildcards and comparison? Like 3.2 matching 3.2.5.7, but not matching 3.3.4.28 ? – Jeroen Wiert Pluimers – Google+

–jeroen

Posted in *nix, *nix-tools, Development, Power User, rpm, Software Development, Versioning | Leave a Comment »