Wednesday, October 10, 2018

Linux : Find the top 10 directories containing largest number of files/directories in sorted order


Command Combination:

find -xdev -type d -print0 | while IFS= read -d '' dir; do echo "$(find "$dir" -maxdepth 1 -print0 | grep -zc .) $dir" ;done | sort -rn | head -10

Example:

find /opt -xdev -type d -print0 | while IFS= read -d '' dir; do echo "$(find "$dir" -maxdepth 1 -print0 | grep -zc .) $dir" ;done | sort -rn | head -10

Thursday, November 30, 2017

Sed replace a text with a variable of output of command

Sometimes we need to replace a string with a variable or output of a Linux command we can use Sed in following way to do that

sed -i "s/textTOreplace/${variablename}/g" /file_path

If you also want a backup of the original file to be created after replacement that you can use .bak after -i parameter as follows:

sed -i.bak "s/textTOreplace/${variablename}/g" /file_path





Wednesday, November 22, 2017

Available package managers on different Linux flavors

Here is the list of package managers available in different Linux flavour, for managing packages like searcing installing removing the package from the system.

Task to perfomr and commands
apt (deb file formats)
zypp (rpm)
yum/dnf (rpm)
urpmi (rpm)
Debian, Ubuntu
openSUSE
Fedora, CentOS
Mandriva, Mageia
Install new software from package repository
apt-get/apt install package_name/apt install package_name
zypper install package_name
yum install package_name
urpmi package_name
Install new software from package file
dpackage_name -i package_name
zypper install package_name
yum localinstall package_name
urpmi package_name
Update existing software
apt-get/apt install package_name
zypper update -t package package_name
yum update package_name
urpmi package_name
Remove unwanted software
apt-get/apt remove package_name
zypper remove package_name
yum erase package_name
urpme package_name
System update




Update the system
apt-get/apt update
zypper refresh
yum check-update
urpmi.update -a
aptitude update
Update the system to recent packages
apt-get/apt upgrade
zypper update
yum update
urpmi --auto-select
aptitude safe-upgrade
Searcing a package on the system




Search a package name
apt-cache search package_name
zypper search package_name
yum list package_name
urpmq package_name
Searcing a package using pattern
apt-cache search pattern
zypper search -t pattern pattern
yum search pattern
urpmq --fuzzy package_name
Searching package using file name
apt-file search path
zypper wp file
yum provides file
urpmf file
Listing the installed packages available
dpackage_name -l
zypper search -is
rpm -qa
rpm -qa
About Repository




Looking for the list of repositories
cat /etc/apt/sources.list
zypper repos
yum repolist
urpmq --list-media
Where to add new repository
(edit /etc/apt/sources.list)
zypper addrepo path name
(add repo to /etc/yum.repos.d/)
urpmi.addmedia name path
Removing unwanted repository
(edit /etc/apt/sources.list)
zypper removerepo name
(remove repo from /etc/yum.repos.d/)
urpmi.removemedia media

Tuesday, November 14, 2017

ERROR: Exiting with exit code 1. REASON: Server not yet listening on http port 8080 after 50 seconds. Exiting



Error While starting Ambari-server

Ever seen this error? ERROR: Exiting with exit code 1. REASON: Server not yet listening on HTTP port 8080 after 50 seconds. Exiting

I received this error while starting up the Ambari server, I added following configuration and startup of the server was successful and I could access the WebUI.

In the following File:

/etc/ambari-server/conf/ambari.properties

Put the following configuration :

server.startup.web.timeout=120

Restart the server and check on the WebUI 8080.

Saturday, November 4, 2017

Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread "main"

Following error appeared during installation of Netbeans I found the solution as NetBeans is not able to find the java path.

Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread "main"

So the solution is to either correct the java path and correct the environment variables or just put the command line parameter -javahome as following while installing NetBeans.


./netbeans*   --javahome /usr/lib/jvm/java-8-oracle


--or--


sh -x netbeans-8.2-linux.sh --javahome /usr/lib/jvm/java-8-oracle


Note: You should have Java 1.8 or less as NetBeans 8.2 does not seems to work with Java 1.9

Wednesday, July 12, 2017

Host is in bad health Cloudera Manager after reinstalling. ERROR Error, CM server guid updated, expected



It happened to me when i tried to clean up and reinstall the Cloudera-manager tot error in web UI "Host is in bad health Cloudera Manager", i checked the log where is found following error:



ERROR    Error, CM server guid updated, expected e0c62792-a6a4-4070-b725-3ec1c7265e8e, received 03dfe52e-5beb-4794-8178-f5107739a3d6



This happened due to some leftover files which confuses cloudera agent and CM for this we need to do following

delete this file on all the nodes where ever you have the agent running(It will show in the error message that agent failed on following hosts) and restart the agent service

/var/lib/cloudera-scm-agent/cm_guid

and try there may be some other reason, so i request you to look into log of agent, server whenever you get error during installation you will surely get the pointer of the probable reason behind the error.

Monday, June 19, 2017

Get only matching words using Grep in a command Linux, Shell command

We can use Grep to get the fields or string which contains the specified character, word or string.

cat filename|grep -oh "\w*@\w*"

so suppose a test file contains:

2017-06-19 01:04:49 trigproc man-db:amd64 2.7.5-1 <none>
2017-06-19 01:04:49 status half-configured man-db:amd64 2.7.5-1
2017-06-19 01:04:50 status installed man-db:amd64 2.7.5-1
2017-06-19 01:04:50 configure vim-runtime:all 2:8.0.0095-1ubuntu3 <none>
2017-06-19 01:04:50 status unpacked vim-runtime:all 2:8.0.0095-1ubuntu3
2017-06-19 01:04:50 status half-configured vim-runtime:all 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 status installed vim-runtime:all 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 trigproc gnome-menus:amd64 3.13.3-6ubuntu4 <none>
2017-06-19 01:04:51 status half-configured gnome-menus:amd64 3.13.3-6ubuntu4
2017-06-19 01:04:51 status installed gnome-menus:amd64 3.13.3-6ubuntu4
2017-06-19 01:04:51 trigproc hicolor-icon-theme:all 0.15-1 <none>
2017-06-19 01:04:51 status half-configured hicolor-icon-theme:all 0.15-1
2017-06-19 01:04:51 status installed vim-common:all 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 status installed hicolor-icon-theme:all 0.15-1
2017-06-19 01:04:51 configure vim-tiny:amd64 2:8.0.0095-1ubuntu3 <none>
2017-06-19 01:04:51 status unpacked vim-tiny:amd64 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 status unpacked vim-tiny:amd64 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 status half-configured vim-tiny:amd64 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 status installed vim-tiny:amd64 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 configure vim:amd64 2:8.0.0095-1ubuntu3 <none>
2017-06-19 01:04:51 status unpacked vim:amd64 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 status half-configured vim:amd64 2:8.0.0095-1ubuntu3
2017-06-19 01:04:51 status installed vim:amd64 2:8.0.0095-1ubuntu3


in a file /tmp/test then if we want to get all word with ubun we can give the command as

grep -oh "\w*ubun\w*" /tmp/test

will give this word from all lines.

Wednesday, May 17, 2017

Find file older than n days with full absolute path

This command will find the files log, out and txt file as in this example which is older than n days which is defined in parameter -mtime and print the absolute path of the files found.

find `pwd` -maxdepth 1 -mtime +n -type f \( -name "*.log*" -o -name "*.out*" -o -name "*.txt" \)

Examples:

Find and print absolute path of the files which are 7 days or 30 days old

find `pwd` -maxdepth 1 -mtime +7 -type f \( -name "*.log*" -o -name "*.out*" -o -name "*.txt" \)

find `pwd` -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" -o -name "*.txt" \)

We can play with -mtime parameter to get other desired result

Google Ads