remove/rename files with spaces in filename(s)

Let’s examine the folder structure:

Search for files with space(s) in the filename(s)

To do a search within the current folder for all files with a space in the filename do:

find . -maxdepth 1 -type f -name "* *" | while read file; do ls -la   "$file"; done |more
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./file 1.txt

the “-maxdepth 1” parameter limits the search within the current folder.
-maxdepth 2” would search within the current and the first subfolder(s)

To do a recursive search for all files with a space in the filename do:

find . -type f -name "* *" | while read file; do ls -la   "$file"; done |more
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./file 1.txt
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./1/subfolder/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./1/subfolder/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./1/subfolder/file 1.txt
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./1/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./1/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./1/file 1.txt
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./3/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./3/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./3/file 1.txt
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./2/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./2/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./2/file 1.txt

Rename files with space(s) in filename(s)

To replace the space with an underscore for files within the current folder execute:

find . -maxdepth 1 -type f -name "* *" | while read file; do mv "$file" ${file// /_}; done

➜  ordner ls -l
total 24
drwxr-xr-x  6 ugu5ma  staff  192 Dec 29 14:51 1
drwxr-xr-x  5 ugu5ma  staff  160 Dec 29 14:39 2
drwxr-xr-x  5 ugu5ma  staff  160 Dec 29 14:39 3
-rw-r--r--  1 ugu5ma  staff    6 Dec 29 14:38 file_1.txt
-rw-r--r--  1 ugu5ma  staff    8 Dec 29 14:38 file_2.txt
-rw-r--r--  1 ugu5ma  staff   13 Dec 29 14:38 file_3.txt

the files in the subfolders are still untouched:

ordner find . -type f -name "* *" | while read file; do ls -la   "$file"; done |more
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./1/subfolder/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./1/subfolder/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./1/subfolder/file 1.txt
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./1/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./1/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./1/file 1.txt
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./3/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./3/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./3/file 1.txt
-rw-r--r--  1 ugu5ma  staff  8 Dec 29 14:38 ./2/file 2.txt
-rw-r--r--  1 ugu5ma  staff  13 Dec 29 14:38 ./2/file 3.txt
-rw-r--r--  1 ugu5ma  staff  6 Dec 29 14:38 ./2/file 1.txt

To replace the space with an underscore for files within the current folder and subfolders execute:

find . -type f -name "* *" | while read file; do mv "$file" ${file// /_}; done

Danger zone: delete files in current and subfolder with space(s) in filename(s)

find . -type f -name "* *" | while read file; do rm "$file"; done

Ubuntu: remove ipv4-protocol from ethernet interface

On my Ubuntu-host I have my ethernet-interface connected to an mirror-port.
I want to remove the ipv4-protocol from this interface to avoid unnecessary traffic on this interface.

With root-rights execute “nmcli connection show –active”:

ugu5ma nmcli connection show --active
NAME             UUID                                  TYPE      DEVICE          
Fleischele2      8877f4c8-b38d-4028-a71d-b237d8ff649e  wifi      wlp3s0          
br-5bece4d6fbd8  3a34eddc-2c98-4140-9b40-74bcd355cde4  bridge    br-5bece4d6fbd8 
docker0          8de484ba-00e4-4130-b629-0037e3b00015  bridge    docker0         
enp6s0           57bc44f6-5190-42b2-b17f-e928868a42c0  ethernet  enp6s0 

my ethernet-interface (enp6s0) has UUID 57bc44f6-5190-42b2-b17f-e928868a42c0.

Let’s remove ipv4 :

ugu5ma nmcli connection modify 57bc44f6-5190-42b2-b17f-e928868a42c0 ipv4.method disabled

Check again:

➜  ugu5ma nmcli connection show --active                                                   
NAME         UUID                                  TYPE  DEVICE 
Fleischele2  8877f4c8-b38d-4028-a71d-b237d8ff649e  wifi  wlp3s0 

done!

Pi-hole: send pihole.log and pihole-FTL.log to external Syslog-server

The option to send Pihole-logs to a remote syslogserver is not implemented.
Good thing is that Pi-hole creates log-files.
How about adding these logfiles to the local (R-)Syslog-daemon and send it over to the external Syslog-Server via port 514 TCP/UDP ?

I use Dietpi as the OS on my Raspi3+ and added Pi-hole as one of the supported apps .

Dietpi has per default noSyslog-daemon activated.
The first step is to install a Syslog-daemon, in my case Rsyslog.
Install with root-privileges (sudo su):

apt install rsyslog

cd to /etc/rsyslog.d and create two files:

nano pihole.conf

$InputFileName /var/log/pihole.log
$InputFileTag pihole
$InputRunFileMonitor
$InputFilePersistStateInterval 1000
nano piholeftl.conf

$InputFileName /var/log/pihole-FTL.log
$InputFileTag pihole-ftl
$InputRunFileMonitor
$InputFilePersistStateInterval 1000

as next alter rsyslog.conf and add the following lines

nano /etc/rsyslog.conf

$ModLoad imfile
$InputFileName /var/log/pihole.log
$InputFileName /var/log/pihole-FTL.log
*.* @10.50.100.5:514

10.50.100.5 is the external Syslog-Server. Dietpi sends now the syslog-information to the Syslog-Server 10.50.100.5 via TCP port 514.
Change the IP 10.50.100.5 to the Syslog-Server IP you want to use.

restart Rsyslog-daemon:

systemctl restart rsyslog

The Syslog-daemon receives now the Pi-hole logs:

Addition: If you want to see also the DNS-queries go to Settings and Enable query logging:

This brings also the DNS content to the external Syslog-Server:

May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: query[A] bier.de from 10.50.100.13
May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: forwarded bier.de to 1.0.0.1
May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: dnssec-query[DS] bier.de to 1.0.0.1
May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: reply bier.de is no DS
May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: reply bier.de is 212.53.128.75
May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: query[AAAA] bier.de from 10.50.100.13
May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: forwarded bier.de to 1.0.0.1
May 14 09:58:27 DietPi local0 pihole May 14 09:58:26 dnsmasq[15529]: reply bier.de is NODATA-IPv6

Done!