Posts Tagged ‘look’

Monitoring a 2-Node HAProxy Cluster with Zabbix and crm_mon

Wednesday, August 19th, 2026

haproxy-cluster-monitoring-with-zabbix-logo
When you run HAProxy in a two-node Pacemaker cluster, monitoring the HAProxy service itself is not always enough.

A node can be reachable while the cluster resource is stopped. One cluster node can also fail without causing an immediate service outage because the second node takes over. The situation that really needs attention is when both HAProxy nodes are down.

In this setup, Zabbix can use

crm_mon

to check the Pacemaker cluster and alert when the cluster loses one or both nodes.

This article shows one way to build that monitoring.

The overall Cluster setup

For this example, we have two HAProxy servers:

haproxy01

haproxy02

Both servers are members of the same Pacemaker/Corosync cluster.

Zabbix is running separately and is responsible for monitoring the environment.

The goal is to have Zabbix report three basic states:

0 = both nodes are online

1 = one node is offline

2 = both nodes are offline

The first two states are useful for operational monitoring, but the important one is

2

. If both nodes are down, the HAProxy service is no longer highly available.

Why check ?

crm_mon

A common approach is to check the HAProxy service directly:

# systemctl is-active haproxy

That is useful, but it only tells us about HAProxy on the machine where the command is executed.

Pacemaker has its own view of the cluster.

crm_mon

shows the state of the cluster nodes and resources.

For example:

# crm_mon -1

On a healthy cluster, you might see something like:

Node List:

Online: [ haproxy01 haproxy02 ]
Full List of Resources:
haproxy (systemd:haproxy): Started haproxy01

If

haproxy02

goes down, the output could look like:

Node List:
Online: [ haproxy01 ]
OFFLINE: [ haproxy02 ]

If both nodes are unavailable:

Node List:
OFFLINE: [ haproxy01 haproxy02 ]

The exact output depends on the Pacemaker version, so it is worth checking the output on your own servers before writing the monitoring script.

1. Creating a simple check script (approach 1)

Rather than putting a long shell command directly into Zabbix, I prefer using a small script and letting the Zabbix agent return a single value.

For example:

/usr/local/bin/check_haproxy_cluster.sh

A simple version could be:

#!/bin/bash
CRM_MON="/usr/sbin/crm_mon"
if [ ! -x "$CRM_MON" ]; then
echo "-1"
exit 1
fi
OUTPUT=$($CRM_MON -1 2>/dev/null)

if [ $? -ne 0 ]; then
echo "-1"
exit 1
fi

ONLINE=$(echo "$OUTPUT" | grep -A1 "Online:" | grep -o "haproxy[0-9]*" | wc -l)

case "$ONLINE" in

2)
echo "0"
;;

1)

echo "1"

;;

0)

echo "2"

;;

*)

echo "-1"

;;

esac

Then make it executable:

# chmod +x /usr/local/bin/check_haproxy_cluster.sh

Run it manually:

/usr/local/bin/check_haproxy_cluster.sh

On a healthy cluster, the result should be:

0

If one node is down:

1

And if both nodes are down:

2

The

-1

value is used for an error, for example if

# crm_mon

cannot be executed.

 

One thing to watch out for

The example above assumes the node names follow a pattern such as

haproxy01

and

haproxy02

That is fine for a simple setup, but I would not use the script unchanged in production without checking the actual

crm_mon

output.

You should also make sure that finding a node name in the output really means that the node is online. Depending on the Pacemaker version, a more precise parser may be necessary.

2. Add the check to the Zabbix agent

The next step is to expose the script through a Zabbix

UserParameter

For example:

UserParameter=haproxy.cluster.status,/usr/local/bin/check_haproxy_cluster.sh

This can be added to the Zabbix agent configuration or to a separate file under the agent's configuration directory.

After changing the configuration, restart the agent:

# systemctl restart zabbix-agent

You can test the item before doing anything in the Zabbix frontend:

zabbix_agentd -t haproxy.cluster.status

A healthy result should look similar to:

haproxy.cluster.status [t|0]

3. Create the Zabbix item

In Zabbix, create an item using the following settings:

Name

HAProxy Cluster Status

Type

Zabbix agent

Key

haproxy.cluster.status

Type of information

Numeric (unsigned)

For the update interval, something like 30 seconds is usually reasonable:

30s

There is nothing special about 30 seconds. The interval should depend on how quickly you need to know about a failure.

4. Create the triggers

Now we can turn the returned values into actual alerts.

For both nodes being down:

last(/HAProxy Cluster/haproxy.cluster.status)=2

The trigger name could simply be:

Both HAProxy cluster nodes are DOWN

I would normally give this a high severity because there is no longer a working HAProxy node available.

For a single node failure:

last(/HAProxy Cluster/haproxy.cluster.status)=1

The trigger could be:

One HAProxy cluster node is DOWN

This can have a lower severity.

That distinction is useful. A single node failure means the cluster is degraded, but the service may still be working normally. Two failed nodes are a different situation.

The resulting states

The Zabbix configuration is then roughly:

Cluster state Value Alert
Both nodes online
             0  
OK
One node offline                1   Warning
Both nodes offline
               2  
High/Critical
Check failed
-1  
Monitoring problem

This is much easier to work with than having Zabbix process the complete output of

# crm_mon

There is a problem with checking from the HAProxy node

There is an important point here.

If you run the script only on

haproxy01

, what happens when

haproxy01

itself completely disappears?

The Zabbix agent on that server is gone as well. Zabbix cannot ask it what happened to the cluster.

This can leave a blind spot exactly when you need monitoring the most.

For that reason, I would run the cluster check from an independent monitoring location whenever possible.

For example:

Zabbix Server
|
|
Zabbix Proxy
|
+————+——–+
|                    |
haproxy01 haproxy02

The monitoring system should not rely on one of the two HAProxy servers to tell you that both HAProxy servers have failed.

5. A more reliable approach

For a production installation, I would also consider using the machine-readable output from

crm_mon

For example:

# crm_mon -1 -X

The

-X

option produces XML output. That makes it possible to parse the cluster state without depending on the formatting of the normal human-readable output.

This matters because a script based on simplicity: e.g. – grep, awk, sed

can easily break after a Pacemaker update if the output format changes.

The general idea remains the same:

Pacemaker
|
crm_mon
|
status parser
|
Zabbix item
|
Zabbix trigger

The only difference is that the parser is working with structured data instead of text intended for a person to read.

6. Don't stop at the cluster state

Checking whether the nodes are online is a good start, but it is not the same as checking whether the application is actually working.

For example, you could have:

haproxy01 Online
haproxy02 Online
HAProxy Running
VIP Available

and still have a problem with the application behind HAProxy.

For that reason, I normally split the monitoring into several checks:

+ Is the server reachable?
+ Is the Pacemaker node online?
+ Is the HAProxy resource running?
+ Is the HAProxy service running?
+ Is the virtual IP available?
+ Can a client actually connect through HAProxy?
+ Is the application behind HAProxy responding?

The last check is often the most useful one because it tests the service from the user's point of view.

7. Testing the setup

Before relying on the Zabbix alert, test the different failure scenarios.

Start with both nodes online:

/usr/local/bin/check_haproxy_cluster.sh

Expected:

0

Next, take one node offline using your normal cluster maintenance procedure.

The check should return:

1

Zabbix should report that one HAProxy node is down, but it should not report a complete HAProxy outage.

Finally, test the situation where neither node is available.

The check should return:

2

At that point Zabbix should generate:

Both HAProxy cluster nodes are DOWN

After testing, verify that the problem clears automatically when the cluster returns to its normal state.

 

Monitoring a 2-Node HAProxy Cluster with Zabbix with more simplistic crm_mon Userparameter (Approach 2)

When you run a high-availability (HA) cluster with Pacemaker, Corosync, and HAProxy, monitoring can be tricky. If you set up standard alerts, a single node rebooting for maintenance can trigger a false "service down" alarm, even though the other node handled the failover perfectly.

To prevent alert fatigue, you need Zabbix to look at the cluster as a single unit and only fire a critical page when both HAProxy nodes go down at the same time.

Here is a practical guide to setting this up using

crm_mon

1. Collect Cluster Data via Zabbix Agent

Instead of parsing messy text outputs, we can make

crm_mon

output clean XML data, then coun

Run these steps on both cluster nodes:

a. Create a new Zabbix agent configuration file:

 vim /etc/zabbix/zabbix_agentd.d/haproxy_cluster.conf

b. Paste the following

UserParameter

line. 

This runs

crm_mon

grabs the XML structure, and returns the total count of active HAProxy resources:

 UserParameter=crm.haproxy.active,sudo crm_mon -1 --as-xml | grep -c 'resource id="haproxy".*active="true"'

(Note: Change

"haproxy"

to match the exact resource ID used in your Pacemaker setup).

c. Give the

zabbix

user permission to run

crm_mon

without a password prompt.

Open the sudoers file:

# visudo

Add this line at the bottom:

zabbix ALL=(ALL) NOPASSWD: /usr/sbin/crm_mon

d. Restart your Zabbix agent:

 # systemctl restart zabbix-agent

2. Set Up the Zabbix Item

Open your Zabbix Web UI. Create this item inside a template and apply it to your cluster nodes:

Name: HAProxy Active Nodes in Cluster
Type: Zabbix agent
Key:

crm.haproxy.active

Type of information: Numeric (unsigned)
Update interval: 1m

What these values mean:

  • 2 = Healthy. Both nodes are up and active.
  • 1 = Degraded. One node died, but traffic is still flowing through the survivor.
  • 0 = Outage. Both nodes are down; the service is dead.

3. Create the Smart Triggers

Now we can create two different alerts so your team knows the difference between a minor issue and an emergency.

The "All Hands on Deck" Alert (Both Nodes Down)

This fires only when the active count drops to zero.

Name: HAProxy Cluster Outage: Both nodes are DOWN!
Severity: Disaster
Expression:

 last(/Template HAProxy Cluster/crm.haproxy.active)=0

The Warning Alert (One Node Down)

This lets you know you lost redundancy, but the site is still up. [1]

Name: HAProxy Cluster Degraded: One node is DOWN
Severity: Average
Expression:

last(/Template HAProxy Cluster/crm.haproxy.active)=1


Alternative: The Quick and Dirty "AND" Trigger

If you do not want to deal with crm_mon or sudoers permissions, you can achieve the same result using Zabbix's built-in network checks and a logical and condition.

If you monitor the HAProxy port (e.g., 8080 or 443) on node1

and node2 individually, you can chain them together in a single trigger expression:

 last(/node1/net.tcp.service[http,,443])=0 and last(/node2/net.tcp.service[http,,8080])=0

With this logic, Zabbix stays quiet during routine single-node reboots and only alerts your team if both ports become unresponsive simultaneously.

Final thoughts

For a two-node HAProxy cluster, checking only

# systemctl status haproxy

does not give you the whole picture.

crm_mon

gives Zabbix access to the Pacemaker view of the cluster, and a small monitoring script can turn that information into a simple status value.

The basic idea is straightforward:

0 = both nodes OK
1 = one node down
2 = both nodes down

From there, Zabbix can handle the alerting.

The most important part is not the Zabbix trigger itself. It is making sure that the monitoring check is independent of the servers it is supposed to monitor. If both HAProxy nodes can fail, the check should ideally run from a Zabbix Server, Zabbix Proxy, or another independent monitoring host.

For a small environment, the simple
crm_mon parser is usually enough.

For a production environment, I would use the XML output from crm_mon

and explicitly monitor the two expected cluster nodes and the HAProxy resource as separate checks.

Debugging Jitsi Meet Server Problems: A Practical Guide

Saturday, April 26th, 2025

Jitsi Meet is a powerful open-source video conferencing platform. But like any real-time communication system, it can run into issues—from video/audio glitches to full-blown connection failures. Debugging Jitsi Meet can be tricky due to its multi-component architecture. This guide walks you through a systematic approach to identify and resolve common server-side issues.

1. Understand the Architecture

Before diving into logs, it's important to understand Jitsi Meet's core components:
 

  • Jitsi Meet (Web UI) – The front-end interface.
  • Jicofo (Focus component) – Manages conference sessions.
  • Prosody (XMPP Server) – Handles user authentication and signaling.
  • JVB (Jitsi Videobridge) – Routes video/audio streams.
  • Nginx or Apache – Web server proxy (often with HTTPS and WebSocket forwarding).


Knowing how these interact helps pinpoint the failing layer.

2. Check Logs in the Right Places

Each component has its own logs. Check them in the following order:

✅ Prosody Logs

Location: /var/log/prosody/prosody.log and prosody.err
​Look for: Authentication issues, connection denials, or component registration problems.
 

✅ Jicofo Logs

Location: /var/log/jitsi/jicofo.log
​Look for: Room creation errors, XMPP connection failures, conference creation attempts.
 

✅ JVB Logs

Location: /var/log/jitsi/jvb.log
​Look for: ICE failures, STUN/TURN issues, packet loss, and bridge reachability.
 

✅ Web Server Logs (Nginx/Apache)

Location (Nginx): /var/log/nginx/error.log and access.log
Look for: HTTP errors (404, 502), WebSocket connection problems.
 

✅ Browser Console Logs
 

Tools: Press F12 in browser → Console/Network tabs.
Look for: WebSocket failures, CORS issues, or media permission problems.
 

3. Common Problems & Fixes

"Failed to join conference"

  • Cause: Prosody may not be running or not configured correctly.​

Fix: Restart Prosody and check domain configuration in /etc/prosody/conf.avail/

 

 

No Audio or Video
 

Usual Cause: Media not reaching the bridge or blocked by firewall

Fix:

  • Verify JVB is listening on correct ports (UDP 10000).
  • ​Check firewall/NAT settings (especially on cloud VMs).
  • Use tcpdump or ss to check traffic flow.
     

WebSocket Connection Fails

 

Usual Cause: Web server (Proxy) misconfiguration.

Fix:

Ensure Nginx is forwarding WebSocket requests to /xmpp-websocket/.
Add proper proxy settings in nginx.conf
 

Authentication Not Working


Cause: Misconfigured JWT or internal authentication.

Fix:

  • Check Prosody's config for authentication method.
  • If using JWT, verify token structure and shared secret.
     

4. Use Debugging Tools

  • Jitsi Meet in debug mode:


​Add #config.debug=true to your meeting URL.
 

  • ICE Debugging:

     

     

     

    Check about:webrtc (Firefox) or WebRTC Internals (Chrome).
    Look at ICE candidate gathering and connectivity checks.
    Test TURN/STUN:

    • Use tools like trickle-ice to validate your server's ICE configuration.

5. Networking and Firewall Checks

Make sure these ports are open:
 

  • TCP 443 – HTTPS
  • UDP 10000 – Media (JVB)
  • TCP 4443 – (Optional, fallback media)
  • TCP 5222 – XMPP (if not using BOSH/WebSocket)
     

# ss -tuln ufw status


6. Component Health Checks

Do 
# systemctl status for each main jitsi component services:

# systemctl status prosody
# systemctl status jicofo
# systemctl status jitsi-videobridge2

Check uptime, errors, or failure restarts.

7. Enable More Verbose Logs

Increase logging levels for deeper debugging:
 

  • Prosody: Edit /etc/prosody/prosody.cfg.lua → set log = { ... debug = "*" }.
  • Jicofo/JVB: Edit /etc/jitsi/jicofo/logging.properties and /etc/jitsi/videobridge/logging.properties
    → change log level to FINE or ALL.

 

8. Update & Restart Services

Sometimes updates or configs don’t apply until services are restarted:
 

# apt update && apt upgrade systemctl restart prosody jicofo jitsi-videobridge2 nginx

 

Final Closure Thoughts

Debugging Jitsi Meet requires a structured approach, start from the user-facing symptoms, trace through each service, and verify network and authentication configurations.
Debug the status of prosody, jicofo and jitsi-videobridge2, check the firewall openings are okay to the jitsi server
With some log analysis and a bit of patience, experimentation and the help of forums or Artificial Intelligence tool like ChatGPT, the Jitsi server errors will get solved.

How to monitor Postfix Mail server work correct with simple one liner Zabbix user parameter script / Simple way to capture and report SMTP machine issues Zabbix template

Thursday, June 22nd, 2023

setup-zabbix-smtp-mail-monitoring-postfix-qmail-exim-with-easy-userparameter-script-and-template-zabbix-logo

In this article, I'm going to show you how to setup a very simple monitoring if a local running SMTP (Postfix / Qmail / Exim) is responding correctly on basic commands. The check would helpfully keep you in track to know whether your configured Linux server local MTA (Mail Transport Agent) is responding on requests on TCP / IP protocol Port 25, as well as a check for process existence of master (that is the main postfix) proccess, as well as the usual postfix spawned sub-processes qmgr (the postfix queue manager), tsl mgr (TLS session cache and PRNG manager), pickup (Postfix local mail pickup) – or email receiving process.

 

Normally a properly configured postfix installation on a Linux whatever you like distribution would look something like below:

#  ps -ef|grep -Ei 'master|postfix'|grep -v grep
root        1959       1  0 Jun21 ?        00:00:00 /usr/libexec/postfix/master -w
postfix     1961    1959  0 Jun21 ?        00:00:00 qmgr -l -t unix -u
postfix     4542    1959  0 Jun21 ?        00:00:00 tlsmgr -l -t unix -u
postfix  2910288    1959  0 11:28 ?        00:00:00 pickup -l -t unix -u

At times, during mail server restarts the amount of processes that are sub spawned by postfix, may very and if you a do a postfix restart

# systemctl restart postfix

The amout of spawned processes running as postfix username might decrease, and only qmgr might be available for second thus in the consequential shown Template the zabbix processes check to make sure the Postfix is properly operational on the Linux machine is made to check for the absolute minumum of 

1. master (postfix process) that runs with uid root
2. and one (postfix) username binded proccess 

If the amount of processes on the host is less than this minimum number and the netcat is unable to simulate a "half-mail" sent, the configured Postfix alarm Action (media and Email) will take place, and you will get immediately notified, that the monitored Mail server has issue!

The idea is to use a small one liner connection with netcat and half simulate a normal SMTP transaction just like you would normally do:

 

root@pcfrxen:/root # telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is '^]'.
220 This is Mail2 Pc-Freak.NET ESMTP
HELO localhost
250 This is Mail2 Pc-Freak.NET
MAIL FROM:<hipopo@pc-freak.net>
250 ok
RCPT TO:<hip0d@remote-smtp-server.com>

 

and then disconnect the connection.

1. Create new zabbix userparameter_smtp_check.conf file

The simple userparameter one liner script to do the task looks like this:

# vi /etc/zabbix/zabbix_agent.d/userparameter_smtp_check.conf

UserParameter=smtp.check,(if [[ $(echo -e “HELO localhost\n MAIL FROM: root@$HOSTNAME\n RCPT TO: report-email@your-desired-mail-server.com\n  QUIT\n” | /usr/bin/nc localhost 25 -w 5 2>&1 | grep -Ei ‘220\s.*\sESMTP\sPostfix|250\s\.*|250\s\.*\sOk|250\s\.*\sOk|221\.*\s\w’|wc -l) == ‘5’ ]]; then echo "SMTP OK 1"; else echo "SMTP NOK 0"; fi)

Set the proper permissions so either file is owned by zabbix:zabbix or it is been able to be read from all system users.
 

# chmod a+r /etc/zabbix/zabbix_agent.d/userparameter_smtp_check.conf

2. Create a new Template for the Mail server monitoring
 


 

Just like any other template name it with what fits you as you see, I've call it PROD SMTP Monitoring, as the template is prepared to specifically monitor In Production Linux machines, and a separate template is used to monitor the Quality Assurance (QAs) as well as PreProd (Pre Productions).

3. Create the followng Items and Depedent Item to process zabbix-agent received data from the Userparam script
 

Above is the list of basic Items and Dependent Item you will need to configure inside the SMTP Check zabbix Template.

The Items should have the following content and configurations:
 

/postfix-main-proc-service-item-zabbix-shot


*Name: postfix_main_proc.service
Type: Zabbix agent(active)
*Key: proc.num[master,root]
Type of Information: Numeric (unassigned)
*Update interval: 30s
Custom Intervals: Flexible
*History storage period: 90d
*Trend storage period: 365d
Show Value: as is
Applications: Postfix Checks
Populated host inventory field: -None-
Description: The item counts master daemon process that runs Postfix daemons on demand

Where the arguments pased to proc.num[] function are:
  master is the process that is being looked up for and root is the username with which the the postfix master daemon is running. If you need to adapt it for qmail or exim that shouldn't be a big deal you only have to in advance check the exact processes that are normally running on the machine
and configure a similar process check for it.

*Name: postfix_sub_procs.service_cnt
Type: Zabbix agent(active)
*Key: proc.num[,postfix]
Type of information: Numeric (unassigned)
Update Interval: 30s
*History Storage period: Storage Period 90d
*Trend storage period: Storage Period 365d
Description: The item counts master daemon processes that runs postfix daemons on demand.

Here the idea with this Item is to check the number of processes that are running with user / groupid that is postfix. Again for other SMPT different from postfix, just set it to whatever user / group 
you would like zabbix to look up for in Linux the process list. As you can see here the check for existing postfix mta process is done every 30 seconds (for more critical environments you can put it to less).

For simple zabbix use this Dependent Item is not necessery required. But as we would like to process more closely the output of the userparameter smtp script, you have to set it up.
If you want to write graphical representation by sending data to Grafana.

*Name: postfix availability check
Key: postfix_boolean_check[boolean]
Master Item: PROD SMTP Monitoring: postfix availability check
Type of Information: Numeric unassigned
*History storage period: Storage period 90d
*Trend storage period: 365d

Applications: Postfix Checks

Description: It returns boolean value of SMTP check
1 – True (SMTP is OK)
0 – False (SMTP does not responds)

Enabled: Tick

*Name: postfix availability check
*Key: smtp.check
Custom intervals: Flexible
*Update interval: 30 m
History sotrage period: Storage Period 90d
Applications: Postfix Checks
Populates host inventory field: -None-
Description: This check is testing if the SMTP relay is reachable, without actual sending an email
Enabled: Tick

4. Configure following Zabbix Triggers

 

Note: The severity levels you should have previosly set in Zabbix up to your desired ones.

Name: postfix master root process is not running
*Problem Expression: {PROD SMTP Monitoring:proc.num[master,root].last()}<1

OK event generation: Recovery expression
*Recovery Expression: {PROD SMTP Monitoring:proc.num[master,root].last()}>=1
Allow manual close: Tick

Description: The item counts master daemon process that runs Postfix daemon on demand.
Enabed: Tick

I would like to have an AUTO RESOLVE for any detected mail issues, if an issue gets resolved. That is useful especially if you don't have the time to put the Zabbix monitoring in Maintainance Mode during Operating system planned updates / system reboots or unexpected system reboots due to electricity power loss to the server colocated – Data Center / Rack . 


*Name: postfix master sub processes are not running
*Problem Expression: {P09 PROD SMTP Monitoring:proc.num[,postfix].last()}<1
PROBLEM event generation mode: Single
OK event closes: All problems

*Recovery Expression: {P09 PROD SMTP Monitoring:proc.num[,postfix].last()}>=1
Problem event generation mode: Single
OK event closes: All problems
Allow manual close: Tick
Enabled: Tick

Name: SMTP connectivity check
Severity: WARNING
*Expression: {PROD SMTP Monitoring:postfix_boolen_check[boolean].last()}=0
OK event generation: Expression
PROBLEM even generation mode: SIngle
OK event closes: All problems

Allow manual close: Tick
Enabled: Tick

5. Configure respective Zabbix Action

 

zabbix-configure-Actions-screenshotpng
 

As the service is tagged with 'pci service' tag we define the respective conditions and according to your preferences, add as many conditions as you need for the Zabbix Action to take place.

NOTE! :
Assuming that communication chain beween Zabbix Server -> Zabbix Proxy (if zabbix proxy is used) -> Zabbix Agent works correctly you should start receiving that from the userparameter script in Zabbix with the configured smtp.check userparam key every 30 minutes.

Note that this simple nc check will keep a trail records inside your /var/log/maillog for each netcat connection, so keep in mind that in /var/log/maillog on each host which has configured the SMTP Check zabbix template, you will have some records  similar to:

# tail -n 50 /var/log/maillog
2023-06-22T09:32:18.164128+02:00 lpgblu01f postfix/smtpd[2690485]: improper command pipelining after HELO from localhost[127.0.0.1]:  MAIL FROM: root@your-machine-fqdn-address.com\n RCPT TO: your-supposable-receive-addr@whatever-mail-address.com\n  QUIT\n
2023-06-22T09:32:18.208888+02:00 lpgblu01f postfix/smtpd[2690485]: 32EB02005B: client=localhost[127.0.0.1]
2023-06-22T09:32:18.209142+02:00 lpgblu01f postfix/smtpd[2690485]: disconnect from localhost[127.0.0.1] helo=1 mail=1 rcpt=1 quit=1 commands=4
2023-06-22T10:02:18.889440+02:00 lpgblu01f postfix/smtpd[2747269]: connect from localhost[127.0.0.1]
2023-06-22T10:02:18.889553+02:00 lpgblu01f postfix/smtpd[2747269]: improper command pipelining after HELO from localhost[127.0.0.1]:  MAIL FROM: root@your-machine-fqdn-address.com\n RCPT TO: your-supposable-receive-addr@whatever-mail-address.com\n  QUIT\n
2023-06-22T10:02:18.933933+02:00 lpgblu01f postfix/smtpd[2747269]: E3ED42005B: client=localhost[127.0.0.1]
2023-06-22T10:02:18.934227+02:00 lpgblu01f postfix/smtpd[2747269]: disconnect from localhost[127.0.0.1] helo=1 mail=1 rcpt=1 quit=1 commands=4
2023-06-22T10:32:26.143282+02:00 lpgblu01f postfix/smtpd[2804195]: connect from localhost[127.0.0.1]
2023-06-22T10:32:26.143439+02:00 lpgblu01f postfix/smtpd[2804195]: improper command pipelining after HELO from localhost[127.0.0.1]:  MAIL FROM: root@your-machine-fqdn-address.com\n RCPT TO: your-supposable-receive-addr@whatever-mail-address.com\n  QUIT\n
2023-06-22T10:32:26.186681+02:00 lpgblu01f postfix/smtpd[2804195]: 2D7F72005B: client=localhost[127.0.0.1]
2023-06-22T10:32:26.186958+02:00 lpgblu01f postfix/smtpd[2804195]: disconnect from localhost[127.0.0.1] helo=1 mail=1 rcpt=1 quit=1 commands=4
2023-06-22T11:02:26.924039+02:00 lpgblu01f postfix/smtpd[2860398]: connect from localhost[127.0.0.1]
2023-06-22T11:02:26.924160+02:00 lpgblu01f postfix/smtpd[2860398]: improper command pipelining after HELO from localhost[127.0.0.1]:  MAIL FROM: root@your-machine-fqdn-address.com\n RCPT TO: your-supposable-receive-addr@whatever-mail-address.com\n  QUIT\n
2023-06-22T11:02:26.963014+02:00 lpgblu01f postfix/smtpd[2860398]: EB08C2005B: client=localhost[127.0.0.1]
2023-06-22T11:02:26.963257+02:00 lpgblu01f postfix/smtpd[2860398]: disconnect from localhost[127.0.0.1] helo=1 mail=1 rcpt=1 quit=1 commands=4
2023-06-22T11:32:29.145553+02:00 lpgblu01f postfix/smtpd[2916905]: connect from localhost[127.0.0.1]
2023-06-22T11:32:29.145664+02:00 lpgblu01f postfix/smtpd[2916905]: improper command pipelining after HELO from localhost[127.0.0.1]:  MAIL FROM: root@your-machine-fqdn-address.com\n RCPT TO: your-supposable-receive-addr@whatever-mail-address.com\n  QUIT\n
2023-06-22T11:32:29.184539+02:00 lpgblu01f postfix/smtpd[2916905]: 2CF7D2005B: client=localhost[127.0.0.1]
2023-06-22T11:32:29.184729+02:00 lpgblu01f postfix/smtpd[2916905]: disconnect from localhost[127.0.0.1] helo=1 mail=1 rcpt=1 quit=1 commands=4

 

 

That's all folks use the :
Configuration -> Host (menu)

and assign the new SMTP check template to as many of the Linux hosts where you have setup the Userparameter script and Enjoy the new mail server monitoring at hand.

Check weather forecast from console (terminal) on GNU / Linux and FreeBSD howto

Friday, August 23rd, 2019

how to get weather forecast prognosis from command line text terminal / console on Linux and FreeBSD

Doing everything in Linux console / terminal is a question perhaps every Linux / BSD hacker wants to do as Graphical user interface and using web search or using Graphical Environment plugins is an unneded complexity + googling or duckduckgoing for weather to check your next vacation destination city has been more and more of a terrible experience (for me) as I'm not a big fan of using the OS in a GUI.
In that manner of thoughts, as a Linux console geek and hard core ASCII art fan. I was recently happy to find that  possible to check weather forecast in tty console or Linux terminal in a beautiful ascii art way easily through a Web wttr.in service – a web application weather forecast service that supports displaying the current and few days in future, weather forecast either in browser as a plain text or from the command line by simply accessing it with your favourite web access / transfer tool such as;
wget / curl or any of your favourite text browser elinks / lynx / w3m or if on *BSDs use fetch command.

 

Install Curl data transfer tool if it is not already


Wget is installed by default across most Linux distributions and fetch is present by default on BSDs, displaying it in text browser would perhaps be never used but if you decide to give it a try maybe try with elinks (to get colorful output), w3m and lynx will display a black and white results.

In case if you miss curl, install it:

On Debian distro

 

aptitude install -y curl


or Fedora

yum install -y curl
…


Of course to use wttr.in as it is Internet based Weather Forecast service the minimum you need to have is to have Internet connection to your Linux / BSD desktop computer.

Text based Weather Forecast Web App currently supports:

display the current weather as well as a 3-day weather forecast, split into morning, noon, evening and night

  • Temperature is displayed for morning, noon, evening and night (includes temperature range, wind speed and direction, viewing distance, precipitation amount and probability)
  • Provide results for Weather based on City / town / village location
  • Supports display of Moon Phases Forecast in calendar days
  • Supports multilingual names (Bulgarian Phonetic cyrillic / Russian and other exotic UTF-8 encodings such as Chineese and Japanese),  50+ languages are currently supported
  • Has ability for prognosis for hostname (domain) location based on an its IP GeoIP location on the Globe
  • Geographical locations / landmarks such as Lakes / Mountains etc. can be easily queried
  • Query results metrics could be configured, e.g. USCS units or EU and rest of world accepted ones (SI) metric
  • Displayed result could be either in ANSI (if from terminal / console / HTML if queried from browser or in PNG – if needed)

 

Where wttr.in could be useful ?

The best applications use, I can think of are for server (shell) / perl scripting automation purposes, it could be useful especially in TOO HOT, TOO, COLD, TOO WET location in Small and Middle sized Data Centers Green Energy (Sun Panel) Parks / Wind Energy situated Linux monitoring hosts to track possible problems of overheats or overcolding of servers due to abnormal excessive temperatures such as the ones we experienced this summer here All across in Europe or in too Cold DC locations such as heat locations Deserts in African Countries, Saudi Arabia or Chukotka or Siberia in Russia.
Other application is as a backup option to other normal Weather report services by PHP or Python scripts that fetch data, from multiple places.
Of course since this is a third party controlled service, the downtime is due to excessive connection requests, the service could get flooded and stopped working, but I guess for any Commercial use, wttr.in creator Igor Chubin would be happy to sell a specific crafted service for any end user candidates.


Here is few examples of the beautiful returned ASCII art formatted output of wttr.in.
 

1. Getting a three days Weather Forecast prognosis for city / town location

To get what is current weather in my current city of Living, Sofia Bulgaria just pass the city to the URL address

curl http://wttr.in/Sofia

text-console-wttr.in-Weather-forecast-Sofia-for-Linux

 

links http://wttr.in/Dobrich

 

curl-Linux-show--Dobrich-Weather-forecast-in-lynx-text-browser


Default links (Linux) www text browser produces ugly black and white

2. Displaying Weather forecast with wget

 

wget -O- -q http://wttr.in


getting-weather-forecast-on-linux-terminal-console-with-wget-command

If you're lazy you can even omit the http:// as wget will look for HyperText Transmission Protocol by itself

 

wget -O- -q wttr.in

 

3. Getting Forecast results for a Tourist Destination


Lets get the weather forecast for the popular tourist Bulgarian destination of the Seven Rila Lakes (near Rila Monastery), situated in the Rila Mountain BG.

 

curl http://wttr.in/Seven+Rila+Lakes

 

Console-terminal-Weather-forecast-Linux-Seven-Rila-Lakes

 

 

4. Display Forecast for a specific server IP


Displaying information on specific server IP address current situated in GeoIP database, of course could be not really true, as the IP could be just a Load Balancer a router that does NAT to some internal DMZ-ed location server, but anyways it is a cool feature.

Lets get information on what is the weather on Google Global's Public DNS server IP 8.8.8.8 so commonly used to guarantee a Windows and Linux Desktop client machines Internet connectivity.
 

curl wttr.in/@8.8.8.8

 

wttr.in-Linux-text--forecast-service-curl-screenshot Google Public DNS location weather forecast

5. Download PNG image picture from wttr.in service

 


Lets say you want to get a 3 days standard Weather forecast for the popular Black Sea Resort town in Bulgaria Pomorie (a beautiful sea city which has even a functioning 5 Monks Monastery Pomorie Monastery situated near sea coast)

 

curl http://wttr.in/Pomorie.png
 

 

–2019-08-22 20:15:51–  http://wttr.in/Pomorie.png
Resolving wttr.in (wttr.in)… 5.9.243.187
Connecting to wttr.in (wttr.in)|5.9.243.187|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 42617 (42K) [image/png]
Saving to: ‘Pomorie.png’

Pomorie.png                                     100%[=======================================================================================================>]  41.62K  –.-KB/s    in 0.07s   

2019-08-22 20:15:52 (586 KB/s) – ‘Pomorie.png’ saved [42617/42617]

 

Note: The generated .png is again the ASCII art produced by a direct text fetch bug in pic format

 

6. Displaying Current Moon Phase


If you want to enjoy a text based Moon phase picture through wttr.in 🙂

wget -O- -q wttr.in/Moon


Display-current-Phase-of-Moon-in-terminal-console-Linux-wttr.in-service

You can also get a Moon Phase prognosis for a current future date or get a previous date phase

 

curl wttr.in/moon@2019-09-15

Full-Moon-Weather-forecast-text-console-reporting-via-wttr.in-on-Gnu_Linux


Full Moon Madness !! – Vampires are out beaware and Enjoy the ultra kewl ASCII Colorful Art 🙂
 

7. Getting help for wttr.in terminal Waether Forecast results

 

 

$ curl wttr.in/:help
Usage:

 

    $ curl wttr.in          # current location
    $ curl wttr.in/muc      # weather in the Munich airport

Supported location types:

    /paris                  # city name
    /~Eiffel+tower          # any location
    /Москва                 # Unicode name of any location in any language
    /muc                    # airport code (3 letters)
    /@stackoverflow.com     # domain name
    /94107                  # area codes
    /-78.46,106.79          # GPS coordinates

Special locations:

    /moon                   # Moon phase (add ,+US or ,+France for these cities)
    /moon@2016-10-25        # Moon phase for the date (@2016-10-25)

Units:

    m                       # metric (SI) (used by default everywhere except US)
    u                       # USCS (used by default in US)
    M                       # show wind speed in m/s

View options:

    0                       # only current weather
    1                       # current weather + 1 day
    2                       # current weather + 2 days
    A                       # ignore User-Agent and force ANSI output format (terminal)
    F                       # do not show the "Follow" line
    n                       # narrow version (only day and night)
    q                       # quiet version (no "Weather report" text)
    Q                       # superquiet version (no "Weather report", no city name)
    T                       # switch terminal sequences off (no colors)

PNG options:

    /paris.png              # generate a PNG file
    p                       # add frame around the output
    t                       # transparency 150
    transparency=…        # transparency from 0 to 255 (255 = not transparent)

Options can be combined:

    /Paris?0pq
    /Paris?0pq&lang=fr
    /Paris_0pq.png          # in PNG the file mode are specified after _
    /Rome_0pq_lang=it.png   # long options are separated with underscore

Localization:

    $ curl fr.wttr.in/Paris
    $ curl wttr.in/paris?lang=fr
    $ curl -H "Accept-Language: fr" wttr.in/paris

Supported languages:

    af da de el et fr fa hu id it nb nl pl pt-br ro ru tr uk vi (supported)
    az be bg bs ca cy cs eo es fi ga hi hr hy is ja jv ka kk ko ky lt lv mk ml nl fy nn pt pt-br sk sl sr sr-lat sv sw th te uz zh zu he (in progress)

Special URLs:

    /:help                  # show this page
    /:bash.function         # show recommended bash function wttr()
    /:translation           # show the information about the translators

 


 

 

8. Comparing two cities weather from command line

 


One useful use of wttr.in if you plan to travel from Location city A to Location city B is to compare the temperatures with a simple bash one liner script:

 

 

 

diff -Naur <(curl -s http://wttr.in/Sofia ) <(curl -s http://wttr.in/Beograd )

 

 

9. Using ansiweather command to get Weather Temperature / Wind / Humidity in one line beuatiful text

 


If you go and install answeather Linux package

 

apt-get install –yes ansiweather


You will get a shell script wrapper with ANSI colors and Unicode symbols support. Weather data comes from OpenWeatherMap, this is useful if wttr.in is not working due to some URL malfunction (due to service is DoS-ed) etc.

 

ansiweather -l Atina

 

ansiweather-Atina-weather-forecast-result-linux-text-console

Lets use ansiweather to print the weather prognosis for upcoming 5 days for near port of Burgas, BG
 

ansiweather -F -l Burgas

ansiweather-print-weather-forecast-prognosis-for-5-days-in-Linux-text-terminal

 

10. Get all Weather current forecast for each Capital in the world


You can download and use this simple plain text file list of All Country Capitals in the World (country-capitals-all-world.txt) with ansiweather and a bash loop to get displayed each and every current day Weather Forecast in the World, here is how:

 

while read line; do ansiweather -l $line; sleep 3; done < country-capitals-all-world.txt


ansiweather-all-countires-capitals-result

As you can see some of the very exotic third world capitals does not return data so 'ERROR: Cannot fetch weather data' is returned.


You can also substitute ansiweather with curl wttr.in/$line to do get the beautiful ASCII art 3 days weather forecast via wttr.in

 

while read line; do curl http://wttr.in/$line; sleep 3; done < country-capitals-all-world.txt


I'll be happy to know other nice ASCII Art supporting Web service to enjoy from text terminal on Linux (nomatter useful or) just funny joyful prank maniacal pranks such as Watching text ASCII version remake of Star Wars Classic Movie by simply telnetting to towel.blinkenlights.nl (if you haven't so just telnet and enjoy the streamed ASCIIs ! 🙂

 

telnet towel.blinkenlights.nl

 

watch-star-wars-ascii-art-version-remake-online-with-telnet-on-linux-console-terminal

 

Talking about fun and ASCII, its worthy to mention hollywood Linux package

hipo@jeremiah:~/Desktop$ apt-cache show hollywood|grep -i desc -A 3
Description-en: fill your console with Hollywood melodrama technobabble
 This utility will split your console into a multiple panes of genuine
 technobabble, perfectly suitable for any Hollywood geek melodrama.
 It is particularly suitable on any number of computer consoles in the

—
Description-md5: 768f44c76220ea2b35f855ea34c8bc35
Homepage: http://launchpad.net/hollywood
Section: games
Priority: optional


Once installed on Debian with:

aptitude install -y hollywood
…

You can get in a rapid manner plenty of tmux (screen like – virtual console emulator) split screen statistics about your notebook / workstation / server CPU usage, mlocate.db status, info about plugged in machine voltage, Speedometer (statistics about Network bandwidth usage), System load avarage (CPU Count, Memory Utilization) and some other random info coming out of dmesg kernel log and more. The information displayed in splitted windows changes rapidly and (assuming you run it at home Desktop with a soundblaster) and not remotely, a james bond Agent 007 soundtrack is played on the back, that brings up one's adrenaline and makes it look even cooler.

hollywood-melodrama-technobubble-split-console-multiple-panes-for-genuine-technobubble

To give you an idea what to expect, here is shot of /usr/games/hollywood (the program start binary location) on Debian GNU / Linux running, Enjoy! 🙂
 

Must have software on freshly installed windows – Essential Software after fresh Windows install

Friday, March 18th, 2016

Install-update-multiple-programs-applications-at-once-using-ninite

If you're into IT industry even if you don't like installing frequently Windows or you're completely Linux / BSD user, you will certainly have a lot of friends which will want help from you to re-install or fix their Windows 7 / 8 / 10 OS. At least this is the case with me every year, I'm kinda of obliged to install fresh windowses on new bought friends or relatives notebooks / desktop PCs.

Of course according to for whom the new Windows OS installed the preferrences of necessery software varies, however more or less there is sort of standard list of Windows Software which is used daily by most of Avarage Computer user, such as:
 

Not to forget a good candidate from the list to install on new fresh windows Installation candidates are:

  • Winrar
  • PeaZIP
  • WinZip
  • GreenShot (to be able to easily screenshot stuff and save pictures locally and to the cloud)
  • AnyDesk (non free but very functional alternative to TeamViewer) to be able to remotely access remote PC
  • TightVNC
  • ITunes / Spotify (for people who have also iPhone smart phone)
  • DropBox or pCloud (to have some extra cloud free space)
  • FBReader (for those reading a lot of books in different formats)
  • Rufus – Rufus is an efficient and lightweight tool to create bootable USB drives. It helps you to create BIOS or UEFI bootable devices. It helps you to create Windows TO Go drives. It provides support for various disk, format, and partition.
  • Recuva is a data recovery software for Windows 10 (non free)
  • EaseUS (for specific backup / restore data purposes but unfortunately (non free)
  • For designers
  • Adobe Photoshop
  • Adobe Illustrator
  • f.lux –  to control brightness of screen and potentially Save your eyes
  • ImDisk virtual Disk Driver
  • KeePass / PasswordSafe – to Securely store your passwords
  • Putty / MobaXterm / SecureCRT / mPutty (for system administrators and programmers that has to deal with Linux / UNIX)

I tend to install on New Windows installs and thus I have more or less systematized the process.

I try to usually stick to free software where possible for each of the above categories as a Free Software enthusiast and luckily nowadays there is a lot of non-priprietary or at least free as in beer software available out there.

For Windows sysadmins or College and other public institutions networks including multiple of Windows Computers which are not inside a domain and also for people in computer repair shops where daily dozens of windows pre-installs or a set of software Automatic updates are  necessery make sure to take a look at Ninite

ninite-automate-windows-program-deploy-and-update-on-new-windows-os-openoffice-screenshot

As official website introduces Ninite:

Ninite – Install and Update All Your Programs at Once

Of course as Ninite is used by organizations as NASA, Harvard Medical School etc. it is likely the tool might reports your installed list of Windows software and various other Win PC statistical data to Ninite developers and most likely NSA, but this probably doesn't much matter as this is probably by the moment you choose to have installed a Windows OS on your PC.

ninite-choises-to-build-an-install-package-with-useful-essential-windows-software-screenshot
 

For Windows System Administrators managing small and middle sized network PCs that are not inside a Domain Controller, Ninite could definitely save hours and at cases even days of boring install and maintainance work. HP Enterprise or HP Inc. Employees or ex-employees would definitely love Ninite, because what Ninite does is pretty much like the well known HP Internal Tool PC COE.

Ninite could also prepare an installer containing multiple applications based on the choice on Ninite's website, so that's also a great thing especially if you need to deploy a different type of Users PCs (Scientific / Gamers / Working etc.)

Perhaps there are also other useful things to install on a new fresh Windows installations, if you're using something I'm missing let me know in comments.

Use mac PC built-in camera to make / take pictures on Mac OS X macbookair notebook with Photo Booth

Friday, February 26th, 2016

take-picture-or-video-with-built-in-camera-on-MacOSX-PhotoboothLOGO

It seems we lost our Good high quality Digital Camera somewhere and I was in need urgently to make a good quality photo (my ZTE Phone) has a very bad camera, so I got the idea to use Macbookair's camera as it has better
resolution to picture my present a  Tank Tort 🙂 hand made by my wife as a present for the Day of the Defender of the Fatherland which is a major feast in Russia, Belarus and many of the ex-Soviet Union members communist countries.

Actually using build in camare in MacBookAir is a handy thing for people mising at the moment a good high quality digital camera as it is thin and light and build in MacBook cam can be used to make Videos and Pictures exactly the same way
as an ordinary Tablet Computer is used so commonly nowadays by many:

In other words I needed for the Mac OS X equivalent to Cheese's (Photo and Video) capturer program for Linux.

Luckily for people interested in using their Mac OS notebook as a amateur camera this is easy by using default shipped Mac Application called:

Photo Booth app

To Launch Photo Booth app it just look it up in Finder and double click it:

PhotoBooth-how-to-take-photos-on-macosx

Clicking the large red button underneath the preview area will take a picture after an optional countdown.

Tort Tank of Svetka

Besides being able to capture Video and Pictures from Mac's camera it could add also some nice effects to taken pictures and videos (supports a basic video editing) features and effects.

The effects you can choose are are: Sepia, Black and White, Glow, Comic Book, Normal, Colored Pencil, Thermal Camera, X-Ray, and Pop Art. There are also effects that change the person in the picture using these effects: Bulge, Dent, Twirl, Squeeze, Mirror, Light Tunnel, Fish Eye, and Stretch. Actually  photographic filters of Photo Booth are very similar to Adobe Photoshop.

make-picture-on-mac-photobooth-effects-screenshot
By default Photo Booth will create picture, howver

Photo Booth saves your photos as JPEG files in a folder named Photo Booth, located in your home folder.

Choose File > Reveal in Finder

to see your picture files.

A much better way to be able to easily see and access all taken Pictures and Videos with Photo Booth is to

 

open Terminal

 

and type:

——-
 

 

$ cd Pictures
$ ln -s Photo\ Booth\ Library/Pictures/ PhotoBoothPics


This will make Link to pictures be easily accessible from your Finder -> Pictures folder
 
Applying custom photo backgrounds

A very useful feature of Photo Booth is that the user can apply backdrops to provide an effect similar to a green screen. When a backdrop is selected, a message appears telling the user to step away from the camera. Once the background is analyzed, the user steps back in front of the camera and is shown in front of the chosen backdrop.

For people who prefer to take photos using a console program on Mac OS I guess you should take a look at ffpeg
Here is one more snapshot of the Tort Tank snapshot made with the Macbookair of Svetlana 🙂

Tort Tank


P.S. If you like the Tort Tank and you happen to live in Sofia Bulgaria, you can order it  by dropping me a comment with request 🙂

Enjoy ! 🙂

How to find and Delete Duplicate files in directory on Linux server with find and fdupes command

Monday, March 16th, 2015

search-duplcate-files-linux-command-and-graphical-tools-how-to-find-duplicate-files-on-linux-mac-and-windows-os

Linux / UNIX find command is very helpful to do a lot of tasks to us admins such as Deleting empty directories to free up occupied inodes or finding and printing only empty files within a root file system within all sub-directories
There is too much of uses of find, however one that is probably rarely used known by sysadmins find command use is how to search for duplicate files on a Linux server:
 

find -not -empty -type f -printf “%s\n” | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 –all-repeated=separate

If you're curious how does duplicate files finding works, they are found by comparing file sizes and MD5 signatures, followed by a byte-by-byte comparison.

Most common application of below command is when you want to search and get rid of some old obsolete files which you forgot to delete such as old /etc/ configurations, old SQL backups and PHP / Java / Python programming code files etc.

If you have to do a regular duplicate file find on multiple servers Linux servers perhaps you should install and use  fdupes command.
On Debian Linux to install it:

root@pcfreak:/# apt-cache show fdupes|grep -i descr -A 4
Description: identifies duplicate files within given directories
 FDupes uses md5sums and then a byte by byte comparison to find
 duplicate files within a set of directories. It has several useful
 options including recursion.
Homepage: http://code.google.com/p/fdupes/

 

root@www.pc-freak.net:/# apt-get install –yes fdupes

To search for duplicate files with fdupes in lets /etc/ just run fdupes without arguments:

 

root@pcfreak:/# fdupes /etc/
/etc/magic
/etc/magic.mime

/etc/odbc.ini
/etc/.pwd.lock
/etc/environment
/etc/odbcinst.ini

/etc/shadow-
/etc/shadow


If you want to look up for all duplicate files within root directory:
 

root@pcfreak:/# fdupes -r /etc/
Building file list /
…

 

You can also find duplicate files for multiple directories by just passing all directories as arguments to fdupes

 

root@pcfreak:/# fdupes -r /etc/ /usr/ /root /disk /nfs_mount /nas
…


The -r argument (makes a recursive subdirectory search for duplicates), if you want to also see what is the size of duplicate files found add -S option

 

fdupes -r -S /etc/ /usr/ /root /disk /nfs_mount /nas

 


If you want to delete all duplicate files within lets say /etc/

 

root@pcfreak:/# fdupes -d /etc/
…

fdupes is also available and installable also on RPM based Linux distros Fedora / RHEL / CentOS etc., install on CentOS with:
 

[root@centos~ ]# yum -y install fdupes


There is also a port available for those who want to run it on FreeBSD on BSD install it from ports:

 

freebsd# cd /usr/ports/sysutils/fdupes
freebsd# make install clean


If you have a GUI environment installed on the server and you don't want to bother with command line to search for all duplicate files under main filesystem and other lint (junk) files take a look at FSlint

FSlint-2.02-search-for-duplicate-and-lint-files-linux-gui-tool

If you're looking for a GUI cross platform duplicate file finder tool that runs on all major used Operating Systems Mac OS X / Windows / Linux take a look at dupeGuru

 

Schindler’s List – A must see classical movie about the terrible Jewish Holocaust during World War II

Wednesday, September 10th, 2014

schindlersList-a-classical-movie-about-the-terrible-jewish-holocaust-during-world-war-ii
A very little is known in these days especially among young people of Europe about the terrible attrocities of the Jewish Holocaust and the concentration camps like Auschwitz organized by Hitler's Nazi Germany in World War II.

Schindler's List is a very good American movie (from 1993) retelling a true story about how enterpreneur Oskar Schindler managed to save about 1200 Jewish people from extermination in the camp of dead – Auschwitz during WWII.
Schindler's List is a movie that shows how even a deeply business oriented money obsessed man like O.

oscar_schindler_Schindler-list-movie-main-actor-with-a-cigarette

Schindler was before the beginning of war could grow in the love of Christ and Christian faith to risk his life and well being in order to be liable and honest with himself in a years when most of Nazi's Germans become totally unhuman and obsessed to wipe out existence of Old Testament God's Choosen People – The Jewish.

The movie is based on a popular novel Schindler's Ark by Canadian Thomas Keneally about how the German Shindler saved lifes of thousand Polish-Jewish refugees by creating an own business (fabric) run in Nazi's Germany before WWII and later inside a concentration camp. The movie is shot by the the film legend Steven Spilberg (who is also a Jew) intentionally Black and White to put an extra artistic impact and is very much made to look like a documentary.

The movie is 3 hours 28 minutes of Drama and has multiple awards for  Best Picture, Best Director, Best Adapted Screenplay, and Best Original Score. The movie plot starts from how the anti-semitism in Germany started and how it progressed a little time before the emerge of war and the start of Jewish persecution. The main actors are Oscar Schindler a member of German Nazi Party whose dream is to make a big fortune out of the war. By using bribes and his bright manipulative personality he manages to bribe Wehrmacht (German Armed Forces) and WWII SS (German special forces). Schindler uses the local Jewish Itzhak Stern who has plenty of contacts in Jewish Business community and black marketers to form a cheap-hand jewish labour force for his factory for metal vessels to be used within Germany Nazi's Army. Many high qualified jewish was more than happy to be hired in his "Fabryka Oskara Schindlera" fabric, because this was quite a better alternative than being in one of the deadly concentration camps.

schindler-list-atrocities-of-the-germans

The movie shows, how jewish were forced to obey an always changing and unclear criterias in order to convince them they're no good for nothing and thus for Nazis to find reason to kill as many as possible of them. At a certain point the situation gets out of control and Jewish peoples who are forced to live in Jewish ghettos start being randomly mass murdered for missing reasons in Płaszów concentration camp. SS-Untersturmführer (second lieutenant) Amon Goeth is responsible to oversee the Plaszow camp , once the camp completes its construction by jews, he orders getto liquidated.

small-kid-hiding-from-the-German-Nazis-in-the-toilet

As the Germans start loosing the war, an order is made to sent all surviving jews to the most deadly Nazi concentration camp Auschwitz.

Shindler-list-killed-Jews-dead-bodies

Oscan Schindler (also known by all jews as the director), witnesses the jewish massacres and in being profoundly affected, makes full effort to convince the Nazis the his company jews are important as a workforce and he needs them to produce ammos and military weapons in order to make full profit.
He has to pay almost all his earned money in early prior war times and first 2 war years in order to ransom the jews and sents him to work in another established factory of his (he manages to convince Nazis that even children and handicapped are useful for his company thus managing to save a multitude of doomed innocent people. As the train carrying women and children is accidentally redirected to Auschwitz-Birkenau, Schindler bribes the commandant of Auschwitz with a bag of diamonds to win their release.

In his new factory Shindler forbids the SS guards to enter the factory and orders the production of ammos and weapons to be produced defective by his workers. Letting them to even to observe their Jewish Shabbath (Sabbath). In the next 7 months Shindler bribes multiple Nazi officials and runs out of money in 1945 exactly when the War in Europe is over with  Germany surrender. The SS Guards are being ordered to kill the Jews as the red-army is advancing and soon liberate the concentration camp, however Shindler succesfully convinces SS's to let Jews alive and go to their families and homes.

shindler-list-movie-jews-scene-with-a-young-kid

As a sign of thankstfullness his jewish workers give Schindler a signed statement attesting to his role saving Jewish lives, together with a ring engraved with a Talmudic quotation: "Whoever saves one life saves the world entire.". Schindler is deeply ashamed for not doing even more to save more Jews from extermination. Schindler has to flee the concentration camp to escape being killed by the approaching red-army. On next morning Soviet soldier comes and announces liberation of Jews. The evil Hitler follower Goeth is executed for his crimes against humanity and his unwillingness to refuse his Nazis ideas.

The movie is quite hard to grasp, so prepare for a lot of bloody scenes, nomatter that it is one of the best movies I've seen and has good spiritual elements. It is also good to see for it shows that the Good always triumphs victoriously over the evil.
Happy Watching!
 

Religulous – An Atheist movie preaching false ideas about Christianity – Religulous Orthodox Christian perspective

Thursday, July 31st, 2014

Religulous-anti-Christian-movie-Psalm-14-vers-1-the-fool-said-in-his-heart-there-is-no-God
Most of my colleagues at work know I am Christian and as we have our lunch  together almost daily, have a friend talks in our rest time etc. … it is quite normally we have talks on topic of philosophy and religion.

Most of them (like a lot of IT people have atheistic views as most people nowdays, even though I'm sure they believe deep in their hearts in good and wait / search for God's salvation and mercy.)
In that short talks often, I've been pranked, questioned and probably even thought crazy for believing in the Lord Jesus Christ and the Holy Gospel. That's okay as this is normal as in almost all ages Christians, were mocked for their faith by skeptics and disbelievers.

In our talks often, my colleagues try to convince me their believe "There is no God" and they think in a way that religion is only for old fashioned and stupid people, because they think the modern dilusion that science and religion are controversial.
Since some time one of my colleague tells me about an atheistic movie of an atheist who made a movie called Religulous. After, I've been told about the movie about 5 times, I decided to spend some and research on it, because I firmly believe it is the next "holywood" style easily digestable movie made "the holywood way". Below is my rationalization and findings about the movie.

The movie title Religulous is selected as a prank from the word "Ridiculous". Before you further read I warn you if you're an Orthodox Christian to not watch it for it is not worthy to spend 1:40 minutes of your wife watching such a nonsense.

Religulous is American documentary film from 2008, directed by Larry Charles and starring comedian Bill Maher. In the Movie Bill Maher travels to different religion holy places (Jerusalem, Vatican, Salt Lake city) and pranks interviewing believers from variety of religions believes. Uneasy questions misleading questions are asked to different people and he makes prank of answers. Of course it is very easy to make someone a fool who doesn't have idea about basics of world religions and present your arguments in a convincing way among people who doesn't have deep understanding on Christianity branches and history.

If one takes a quick time to research on who is Bill Maher, he finds he is a ardently liberal who has deep disrespect and hate for Christianity based on a personal bitter experience in Catholicism (curiously his mother is Jewish) and one finds Maher disregards Christianity not based on facts but on personal bitter experiences from Roman Catholicism.
In religulous it is preached, that religion must die to liberate the family from unneeded slavery which is pretty much what the communists in the bolshevik revolution believed – meaning his idea is nothing new but rebranded atheism. Just for information, there were people with such hatred and ideas during the last 2000 years, so somehow this guy, reinvents the steel.

In the movie Maher travels the world with director of  Borat Cultural Learnings of America for  Make benefit Glorious notion of Khazakstan – Larry Charles (which is another mockery "commedy" movie).
Even by reading IMDB movie description gives you idea the movie is not serious and it is highly ridiculous to use such non-sense to attack Christianity, along which civilization gravitated and thanks to which we have a well developed modern civilization.  What Maher claims is about  1/3 of population on earth – 2.5 billion are stupid and inferior to atheists).

Here is IDMB's storyline quote:

Bill Maher interviews some of religion's oddest adherents. Muslims, Jews and Christians of many kinds pass before his jaundiced eye. Maher goes to a Creationist Museum in Kentucky, which shows that dinosaurs and people lived at the same time 5000 years ago. He talks to truckers at a Truckers' Chapel. (Sign outside: "Jesus love you.") He goes to a theme park called Holy Land in Florida. He speaks to a rabbi in league with Holocaust deniers. He talks to a Muslim musician who preaches hatred of Jews. Maher finds the unlikeliest of believers and, in a certain Vatican priest, he even finds an unlikely skeptic.

It is obvious from this description that the movie is not to consider serious and what the people on this movie would say is not to be considered authoritative as they're not even theologians, but random people. Also what Maher did in this movie is to select weak and mixed people to mock intentionally Christianity.

Even though in the movie various religions are mocked the accent of his mockery is christianity and this is not a coincidense but because, Christianity has most adherents.
The movie is highly manipulative, just like another openly anti-Christian movie Zeitgeist.
The guy opens the movie with a scene on Megiddo, Israel with a false claim that the end of the world is going to happen on this place.

I have heard some protestant Christians took Revalation chapter of Holy Bible and interpret the written there about an End of the World all world armies battle. Actually I'm not aware that this idea is ever preached by any orthodox Christian priest, monk or elder but it is more a "free interpretation" of the holy scriptures by some protestant denomination.
Actually an interesting thing about Megiddo is on Megiddo is located the earliest Christian Church, so I guess it is a not a coincidense movie criticism starts from there. The first half of the film is mostly focused on evangelical Christians, how they believe in things like a 5,000-year-old earth, etc. Maher takes a trip to the Creation Museum in Hebron, Kentucky, where he interviews creationism guru Ken Ham against the backdrop of animatronic dinosaurs with saddles (for humans to ride on).
And he also interviews young-earth evangelical Mark Pryor, a democratic senator from Arkansas who creates some of the funniest moments of the film. To be fair, Maher also interviews Christian evolutionist Francis Collins, but he too comes out looking a bit buffoonish.

All along the journey, Maher and Charles jazz up the images with achingly sardonic voiceovers and music, and some very clever quick-cut editing (inserting 2 seconds of Charlton Heston-as-Moses at opportune moments, for example).

To show off his openness Maher, smokes pot on camera obviously preaching "freedom" the american way and live quickly and die rock'n'roll culture message. The movie is quite agressive and made in a way to make converts. The movie presents the so called self-fulfilling prophecies, believed and preached by people involved into experimental psychology (which nowdays uses early occult and shamanistic magical methods and whose practices are not based on science but on believe).

Of course to make such a movie look authentic, any connection with real historic facts in the movie are omitted.

Maher's thesis that all things evil and destructive are a result of religious delusion simply does not hold water historically!
There are already thousands of recent proofs, that lack-of religion is not panacea for all problems, take for example communism in Russia and the disbandlement of the USSR, Communistic China and the countraless atheistic regimes throughout history leading to violence and calamity in the world, totally outside of any religious motivation.

To make the non-sense movie more fun and convincing, the psychologic method of mockery is heavily used,  everything in the movie is presented in a commedy form.

Religulous a movie meant to make religious people look stupid, to "prove" that religious belief and intelligence are mutually exclusive.

Maher spends the second half of the film undermining religions and cults of every shape and size. He goes to Utah and skewers Mormonism, interviews Puerto Rican cult leader Jose Luis De Jesus Miranda (who claims to be the Antichrist), and even gets high with a leader of a religion based around marijuana. He goes to the Vatican and interviews some crazy Catholic priest, and Jerusalem to deconstruct Judaism and Islam. Maher is particularly hard on Islam, offering somewhat surprising pronouncements about the inherent violence and barbarism of that most touchy of all world religions. At moments like these, Maher might actually find allies in conservative Christian circles??

In the movie, during a debate with a Christian, Maher repeats a version of Christ myth theory derived from Gerald Massey's 1907 thesis that the myth of the Egyptian deity Horus was the source of the story of Jesus. He makes riduculous connection between the Book of the Dead and Jesus Christ.

It is pretty interesting that we Christians are often being blamed for evangelism and because of that most of Christians, fear to talk about their faith, just because true Christian faith and modern society living in confort does not align well together.

The inner essence of man is very similar in both atheists, christian, muslims, jewish, buddhists hindu etc. we are all looking for a higher meaning in life sooner or later in life. We all live by certain believes daily (I know atheists would ignore it but, a lot of the actions even the hardest atheist takes are pushed by certain belief system and faith in something (disbelieve in God is also a faith just like believe in God). Actually being an atheist is a tough thing, because atheists just like us christians spend time to reinforce their disbelieve with, stories, question and answer sessions, scientific facts.

Most of atheists fall in the trap of disbelieve either because they're dishonest in their research on is there God? or because events in their life turned in a way they didn't wanted too (because of lack of what saints call humility) or because they want to justify their bad deeds. Anyways for good or bad most of people who define themselves as atheists and follow the "spiritual wind of the times" are nowadays living in the well developed high economies world and it is interesting that in this parts of the world, people have as heritage to live with general Christian mentality and Christian mindset. Christian understanding of life in most countries full of atheists is so strongly rooted in society and culture, so even the biggest anti-christ or atheist has a tendency to do goo. That a lot of those atheists who disbelieve God actually do Christiain deeds not realizing a lot of their deeds paradoxally are deeds of people who actually believe there is God.

I've noticed there are at least 3 types of atheists:

  • Passive
  • Indifferent
  • Militant (Active)

My personal observations on Atheism (as an ex-atheist), is that atheists have minimal or wrong understanding on different religions and know nothing about Orthodox Christianity and most even didin't hear about its existence, from the movie I got the impression Maher also doesn't have

I think it is not righteous to criticize Christianity without even taking full time to study it. As Orthodox Christianity is hard to grasp and unpopular faith, often the image of modern Christian is made up by protestant Church denominations and even in best cases by Roman Catholic church, so most people in even officially christian protestant / catholic countries does not have the opportunity to see true Christian ascetic faith which is still present in the Orthodox Church.

The most common attack of an atheist against Christianity is using arguments about the Roman Catholic's Crusades and Inquisition, which were conducted by the Roman Catholic Church. Most Atheists however does not knowthat in Orthodox Church, there was no inquisition and no Crusades.
Even worse Roman Catholic crusaders came and invaded and killed orthodox christians in the same way they killed anyone who rejected to accept their faith, this act never happened in Orthodox Church.

Passive and indifferent atheists often, keep calm and either haven't thought whether there is God or don't take position when one talks about faith.
Often passive and indifferent atheists are amazed to learn things pointing them that there is God and that the holy writtings are true.

The Militant (active) atheist is a rare thing to see nowadays as people are tought to be tolerant and respectful to others, however if you start talking on topic that has to deal with faith, somehow a lot of atheists start being agressive and blame you and your faith for responsible for all the evils that happened in the world.

Often active atheists are such because of some personal problem or disappointed connected to Christianity just like Maher. 
Maher and other atheists like him start developing blaming attitude to the Lord and the Church. The fact that Christianity doesn't fit someone's desires doesn't mean it is true.

In the movie one sees quite of crazy people and religious leaders, which are either uninformed about their faith or suffer from some mental problems, as with most movies to discredit Christianity, Orthodox Christianity stand point on faith is not shown. Maher suggests, as a alternative method to faith, the method of doubt actually by creating such a movie with the aim to discredit religion, he demonstrates totally the opposite, as all his findings are based on his personal faith that "There is no God" and Christianity is based on fairy-tales.

Faith has difficulties, there are a lot of sick people in the Church, things are not ideal in christian-dome, and we have to be careful not to believe or follow blindly everything we hear, but I think Maher's attitude is seriously disrespectful to things and people's believe.

In the movie, a lot of the people to be interviewed were radical and the movie makes an image of Christianity as very radical, but Maher and his movie is just like as radical as them. It is fact that there is radical things in many of protestant christian denominations and many start-up (newly believed) Christians, have the tendency to be radical, however to make his point solid  I think, Maher should have interviewed stable and educated theologian and not look for the weirdiest individuals and places in the world.

And often try to look for arguments to approve their disbelieve (finding such arguments is a tought think and this is why a lot of people who try to look for arguments against Christ and Christianity – like me some 10 years ago often end up Christian). There is not one or two movies made on topic of "Scientific Atheism" in same spirit as Religulous, if one research on the facts presented in this movie he quickly understands a lot of the presented movie facts are either untrue or are true but have nothing to do with authentic Christianity which one can find in the most ancient of Churches Eastern and Oriental Orthodox Churches (like for example Syriac Orthodox and Copts).

Religulous and atheistic movies from its genre are not based on true facts either historical or scientific and even often doesn't follow strong rationalism  but more or less on particular person believe. They're looking to disprove God looking from answers in a very biased way.

I would close the post with a quote from the Holy Bible Psalms chapter, clearly addressing atheist people like Maher.
 

The fool hath said in his heart, there is no God.
Psalm 14:1