Syed Jahanzaib Personal Blog to Share Knowledge !

August 23, 2013

Ubuntu Linux Short Reference Notes


♥♥♥   My Love Is For Ubuntu   ♥♥♥

By

Syed Jahanzaib

These are short notes , my findings, some commands as reference , I find from time to time … it will continue in general as long as I am breathing on the planet Earth …!


rc.lcoal missing in Ubuntu 18.x

Quick solution:

Open terminal window, paste following

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

After that the rc.local will be executed upon system startup. You can now edit it to add script that you want to run at startup.

Make sure you add commands before exit 0 statement.


Howto solve MULTIPATHD issue in Ubuntu 20

Fix multipath daemon error about missing path when using linux under esxi.

You may see following errors in syslog log file

$ sudo tail -f /var/log/syslog
Aug 27 13:36:42 ubuntu-focal multipathd[524]: sdc: failed to get sysfs uid: No data available
Aug 27 13:36:42 ubuntu-focal multipathd[524]: sdc: failed to get sgio uid: No data available
Aug 27 13:36:44 ubuntu-focal multipathd[524]: sda: add missing path
Aug 27 13:36:44 ubuntu-focal multipathd[524]: sda: failed to get udev uid: Invalid argument
Aug 27 13:36:44 ubuntu-focal multipathd[524]: sda: failed to get sysfs uid: No data available
Aug 27 13:36:44 ubuntu-focal multipathd[524]: sda: failed to get sgio uid: No data available
Aug 27 13:36:45 ubuntu-focal multipathd[524]: sdd: add missing path
Aug 27 13:36:45 ubuntu-focal multipathd[524]: sdd: failed to get udev uid: Invalid argument
Aug 27 13:36:45 ubuntu-focal multipathd[524]: sdd: failed to get sysfs uid: No data available
Aug 27 13:36:45 ubuntu-focal multipathd[524]: sdd: failed to get sgio uid: No data available

It looks like multipath daemon cannot determine a unique path identifier (WWID). Through below, I have resolved my issue:

Run

nano /etc/multipath.conf 
and add this to the file: defaults { user_friendly_names yes } blacklist { device { vendor "VMware" product "Virtual disk" } } [/sourcecode]

Restart the multipath-tools service:

/etc/init.d/multipath-tools restart

🙂


Howto disable ipv6 in ubuntu.  [12/16]

use following to add them directly to file using echo command

echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1"  >> /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p

MYSQL clear ALL TABLES in RADIUS DATABASE

mysql -uroot -pPASSWORD -Nse 'show tables' radius | while read table; do mysql -uroot -pPASSWORD -e "truncate table $table" radius;

Clear COMMAND history

history -c
cat /dev/null > ~/.bash_history

Ubuntu 18.04 LTS (Bionic Beaver) SHORT NOTES

Enable SSH access for root

By default root is not allowed to login via SSH, you have to enable it ssh config file.

sudo nano /etc/ssh/sshd_config

Search for PermitRootLogin  & modify it as below

PermitRootLogin yes

Save & exit, Restart SSH Service

sudo service ssh restart

Search for word in all files

grep -rnw '/temp' -e 'myword'

Search & Replace

find ./ -type f -exec sed -i 's/string1/string2/g' {} \;

Repeat command using LOOP in terminal

while true; do YOURCOMMAND; sleep 5; done

Find and Delete ZERO SIZE FILES

(in folder name /var/log/mikrotik)

find /var/log/mikrotik/ -name 'mikrotik*' -size 0 -print0 | xargs -0 rm

MYSQL SERVICE & DB Check by bash

#!/bin/bash
# 20-Jun-2016
# Syed Jahanzaib
# https://aacable.wordpress.com aacable at hotmail dot com
#set -x
SQLUSER="root"
SQLPASS="zaib1234"
TMPFILE="/tmp/simupdate.txt"
VALUE="2"
DB="radius"
SRV="mysql"
# Check if $SRV (in this case mysql) is running or not, if NOT, then exit the script
SRVSTATUS=$(pgrep $SRV | wc -l);
if [ "$SRVSTATUS" -ne 1 ];
then
echo "-$SRV is down. Pleasec check your $srv service first.
Exiting ...";
exit 1
else
echo "-$SRV is accessible OK. Proceeding further ..."
fi

# Check if $DB (in this case radius ) is accessible or not, if NOT, then exit the script
RESULT=​mysql -u $SQLUSER -p$SQLPASS --skip-column-names -e "SHOW DATABASES LIKE '$DB'"`
if [ "$RESULT" == "$DB" ]; then
echo "-$DB database exist OK. Proceeding further ..."
else
echo "-$DB database does not exist!"
exit 1
fi

MYSQL : Export TRIGGERS only

wordpress ruined the code 😦

mysqldump routines</span> <span class="crayon-o">--</span><span class="crayon-v">no</span><span class="crayon-o">-</span><span class="crayon-v">create</span><span class="crayon-o">-</span><span class="crayon-v">info</span> <span class="crayon-o">--</span><span class="crayon-v">no</span><span class="crayon-o">-</span><span class="crayon-v">data</span> <span class="crayon-o">--</span><span class="crayon-v">no</span><span class="crayon-o">-</span><span class="crayon-v">create</span><span class="crayon-o">-</span><span class="crayon-v">db</span> <span class="crayon-o">--</span><span class="crayon-v">skip</span><span class="crayon-o">-</span><span class="crayon-i">opt</span> DATABSENAME<span class="crayon-v"><span class="crayon-v"><span class="crayon-v"><span class="crayon-v">

MYSQL: INSERT record , if exists then UPDATE

#Sample code to Insert record, if already exists then UPDATE
mysql -u $SQLUSER -p$SQLPASS --skip-column-names -e "use $DB; insert into TABLE (VALUE1, VALUE2) VALUES ('MYDATA1','MYDATA2') on duplicate key update VALUE2='MYDATA2';"

mysql delete data older then ^months from mysql table RADACCT

# --- Delete data from RADACCT table so that it should remain fit and smart ins size
mysql -uroot -pSQLPASS -s -e "use radius; DELETE FROM radacct WHERE acctstoptime > 0 AND date(acctstarttime) < (CURDATE() - INTERVAL 6 MONTH);"
[/sourcecode]

Fine Tune mysql for Radius Manager(innodb)

edit `my.cnf`
nano /etc/mysql/my.cnf&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
 [mysqld] # system sepcs: 2 GB RAM, innodb_buffer_pool_size=1024M innodb_log_file_size=256M innodb_file_per_table innodb_flush_log_at_trx_commit=2
&lt;div&gt;innodb_flush_method=O_DIRECT&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
Now delete following files and restart mysql
rm /var/lib/mysql/ib_logfile0&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;rm /var/lib/mysql/ib_logfile1&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;service mysql restart

MYSQL UPDATE EXPIRATION DATE VALUE IN RADCHECK

Thousands of users account expiration is stored in radcheck under VALUE (VARCHAR) column and I cannot change its column type because in this table some other information is stored in varchar as well

29 Jul 2018 12:00:00
30 Jul 2018 12:00:00

I need to change only 12:00:00 to 00:00:00 so that it will look alike

30 Jul 2018 00:00:00

following CMD worked well.

UPDATE radcheck SET value = replace(value, '12:00:00', '00:00:00') WHERE attribute = 'Expiration';

Clear BASH history

cat /dev/null &gt; ~/.bash_history &amp;&amp; history -c &amp;&amp; history -w

Find all local users in Linux


cut -d: -f1 /etc/passwd
sed 's/:.*//' /etc/passwd


BASH VARIABLE TESTS

In Bash you quite often need to check to see if a variable has been set or has a value other than an empty string. This can be done using the -n or -z string comparison operators.

The -n operator checks whether the string is not null. Effectively, this will return true for every case except where the string contains no characters. ie:

VAR="hello"
if [ -n "$VAR" ]; then
echo "VAR is not empty"
fi

Similarly, the -z operator checks whether the string is null. ie:

VAR=""
if [ -z "$VAR" ]; then
echo "VAR is empty"
fi

Note the spaces


Date Time Functions

 DATE=`date` TODAY=$(date +"%Y-%m-%d") TODAYDIGIT=`echo $TODAY&nbsp; | sed -e 's/-//g'` MONTH=$(date +"-%m") CMONTH=`echo $MONTH&nbsp; | sed -e 's/-//g'` MONTHYEAR=$(date +"%B-%Y") ALPHAMONTHYEAR=`echo $MONTHYEAR #| sed -e 's/-//g'` ONEMONTHBACK=$(date +%Y-%m-%d&nbsp; -d "1 months ago") YESTERDAY`date -d "yesterday" '+%Y-%m-%d'` 7DAYSAGO=`date -d "-7 days" '+%Y-%m-%d'` 

Get uptime in user friendly format

Get UPTIME in user friendly format for BASH

UPTIME=&lt;code&gt;uptime | awk -F'( |,|:)+' '{if ($7=="min") m=$6; else {if ($7~/^day/) {d=$6;h=$8;m=$9} else {h=$6;m=$7}}} {print d+0,"days,",h+0,"hours,",m+0,"minutes"}'&lt;/code&gt;​

Using SED to remove empty lines from a file

sed -i '/^\s*$/d' /temp/test.sh
sed -i '/^$/d' /temp/test.txt

Using SED to remove lines starting with #

sed '/^#/ d' -i FILEPATH_FILE_NAME

Using SED to remove brackets in line/file

to remove bracket from text
like we want to remove brackets from following

[test]

echo '[test]' | sed 's/\(\[\|\]\)//g'

Example:

cat /tmp/test.txt | awk '{print $2}' | sed 's/\(\[\|\]\)//g' | sed 's#/#\ #g'

Using SED to remove word with special characters.

Remove word with special characters in file by cat and sed

Example: Contents of file name file.txt are

/temp/fullbackup.tar.gz

and now we want to remove /temp/ word only. here how to do it.

cat file.txt | sed -e 's/\/temp\///'

Add User in Ubuntu and grant SUDO (admin rights)

sudo useradd -m -p zaib1234 zaib
sudo useradd zaib sudo

 Installing phpmyadmin

sudo apt-get install phpmyadmin apache2-utils

If you get error “The mcrypt extension is missing. Please check your PHP configuration

then use following

sudo apt-get install php5-mcrypt
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt sudo
service apache2 restart

Howto Enable MYSQL remote connectivity

Connect to mysql shell and issue issue these commands

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;

and on new version of mysql  use

GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;

Also From /etc/mysql/my.cnf

Comment this line:

#bind-address = 127.0.0.1

Then run

service mysql restart


How to reset USB device like usb modem without PLUG/UNPLUG physically

The following script will help you in resetting USB device (without physically unplug/plug). It was very useful for me in one case where server was remotely located and no one was physically present there to plug/unplug DLINK USB GSM modem which hangs frequently. So as a short term solution i created an script which first check for USB BUS, then using usbreset it simply reset that usb device. I scheduled it on hourly basis and it worked very good.

resetusb.sh

cat resetusb.sh
USBBUS1=`lsusb | grep D-Link | awk '{print $2}'`
USBBUS2=`lsusb | grep D-Link | awk '{print $4}' |&nbsp; sed 's/://'`
echo -e "USB Bus1 = $USBBUS1"
echo -e "USB Bus2 = $USBBUS2"
/temp/usbreset /dev/bus/usb/$USBBUS1/$USBBUS2
# Playsmsd restart so that if its in stuck position it should come ALIVE again ; ) : ) zaib
echo playsmsd restart | at now + 1 min

You can create usbreset program from following this url.

http://askubuntu.com/questions/645/how-do-you-reset-a-usb-device-from-the-command-line

OR another link which I have not tested so far..

http://davidjb.com/blog/2012/06/restartreset-usb-in-ubuntu-12-04-without-rebooting/


How to run script every x minute via CRON Job

Edit cron jobs by

crontab -e

then add your script by using

# To run script every one minute
* * * * * /path/your_script.sh

# To run script after FIVE minutes [Example MRTG command with logs]
*/5 * * * *  /etc/myscript.sh

# OR [Example MRTG command with logs]
*/5 * * * * env LANG=C mrtg /etc/mrtg.cfg --logging /var/log/mrtg.log

# Run Script at at 5:00pm Daily
00 17 * * * /temp/sms.sh

# Run in night at 00:00 hours to send notifications to users whose account have been expired today.
@daily /temp/script.sh

# Run Script after every hour
@daily /temp/script.sh

# Run script on reboot
@reboot /temp/rebootscript.sh

How to set Date/Time via CLI on Ubuntu / Linux

If you want to set date and time on Ubuntu box via command/CLI and sync to hardware Bios. use following

sudo date --set="3 OCT 2014 15:54:00"
sudo hwclock --systohc --utc

How to configure / add IP address in UBUNTU via CLI / Command

Sometimes it is required to configure interface card by CLI (command line interface) , for example if you are doing any configuration on remote server via putty, and you want to configure another interface on that server, OR if you are using server edition of ubuntu which dont have GUI, then you will have to do it via CLI.

Configuring a static IP from the command line is a very short task. All you need to edit is one configuration file and restart the networking service.
All you need to know is the settings for your network.

I will show how to set a static IP of 192.168.2.2 on a network with a gateway and dns of 192.168.2.1

Open the configuration file in your favorite editor (mine is nano)

Open terminal and type the following command:

nano /etc/network/interfaces

.
Remove previous entries for your ethernet (for example eth0 section only)
.
Add a section as showed in the following example:

# Adding static ip for eth0 / Syed jahanzaib
auto eth0
iface eth0 inet static
address 192.168.5.2
netmask 255.255.255.0
network 192.168.5.0 # You can disable this line
broadcast 192.168.5.255 # You can disable this line
gateway 192.168.5.1 # You can disable this if you dont have any gateway - or if its a test lab rat :p
dns-nameservers 192.168.5.1

Save & Exit the file.
Now Restart the network service

/etc/init.d/networking restart

You can now verify your new ip by

ifconfig eth0

Howto do Port forward from Linux machine to another server like web or other

sudo iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 50002 -j DNAT --to-destination 10.0.0.2:50002
sudo iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1236 -j DNAT --to-destination 192.168.100.1:1236
sudo iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1235 -j DNAT --to-destination 192.168.100.1:80

HOWTO CHANGE MAC ADDRESS FROM CLI / Command

sudo ifconfig eth0 down
sudo ifconfig eth0 hw ether 00:12:34:BL:AA:AH
sudo ifconfig eth0 up
# if apache is running, dont forget to restart it so it can take new mac, useful in some scenarios
# service apache2 restart

HOWTO  DELETE  FILES  OLDER  THEN  ‘X’  DAYS …

find /path/to/files* -mtime +5 -exec rm {} \;

To Clear Linux Console History

history -c
history -w

First command clears the history, and the second writes the now (empty) history file.


Find what application/process is using the port

type:

sudo netstat -lpn |grep :8080

and press Enter.

You will get an output similar to this one

tcp6       0      0 :::8080                 :::*                    LISTEN      6782/java

I have got the process Id, which is 6782, now this is the process that is using port 8080.

Kill the process, type:

kill 6782
fuser -n tcp 8080
lsof -w -n -i tcp:8080
netstat | grep 8080
$ sudo -i
$ netstat -tulpn

PHP prompts to save file in Apache2

If you open any php file hosted on your linux base system, and it give syou option to OPEN/SAVE rather then displaying content, then install following

sudo apt-get install libapache2-mod-php5
sudo a2enmod php5
sudo /etc/init.d/apache2 restart

Test USB port functionality

root@radius:~# cat /temp/testusb.sh
## Search for a working USB port (/dev/ttyUSB)
work=false
for port in /dev/ttyUSB*
do
[[ -e $port ]] || continue
gcom -d $port info &amp;&gt; /tmp/testusb
testUSB=`cat /tmp/testusb | grep "Error\|Can't"`
if [ -z "$testUSB" ]; then
work=$port
break
fi
done
rm -rf /tmp/testusb

if [ $work != false ]; then
echo "$work is working!"
else
echo 'Not found a working USB port'
fi

To restart Networking , issue the following command.

To restart Networking services to apply changes you made with your interfaces , issue the following command.

/etc/init.d/networking stop
/etc/init.d/networking start

OR

/etc/init.d/networking restart

OR some other commands for the same

sudo initctl restart network-manager
sudo initctl restart network-interface INTERFACE=eth0

OR

sudo ifconfig eth0 down
sudo ifconfig eth0 up

Static Route lost when ethernet cable unplug/plug [8th-MAR-2016] for UBUNTU 12.x

It is observed that if you have made static route in ubuntu 12.x, they get lost when ethernet cable unplug/plug. to make the persistent on boot/unplug+plug situation, use following.

# The primary network interface
auto eth1
iface eth1 inet static
address 192.168.101.20
netmask 255.255.255.0
dns-nameservers 192.168.100.2
#ROUTE 1 static
up route add -net 10.0.0.0/8 gw 192.168.101.10 dev eth1
#ROUTE 2 static
up route add -net 172.0.0.0/8 gw 192.168.101.10 dev eth1

Howto to ADD / DELETE Route

Adding default Gateway

route add default gw 192.168.2.1 dev eth1

Deleting all default Gateways

ip route del default

Add Route for Local Network using Gateway

route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.2.1 dev eth0

Delete Route …

route del -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.2.1 dev eth0

Ubuntu / Debian Linux: Services Configuration Tool to Start / Stop System Services

apt-get install sysv-rc-conf

then run sysv-rc-conf




HOWTO change default text EDITOR in CLI useful for Ubuntu 13 crontab)

export EDITOR=/usr/bin/nano

HOWTO INSTALL WEBMIN ON YOUR UBUNTU BOX:

I assumed that you have installed and configure your Linux box (preferably Ubuntu, but any flavor can do the job, this is the main quality of Linux OS 🙂 ~ To install Webmin , first add its repositories to sources.list, to do this first open sources.list nano /etc/apt/sources.list Now paste the following lines in the end of this file.

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
deb http://archive.canonical.com/ lucid partner

Save & Exit. OR add them via echo command

echo &gt;&gt; /etc/apt/sources.list deb http://download.webmin.com/download/repository sarge contrib
echo &gt;&gt; /etc/apt/sources.list deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
echo &gt;&gt; /etc/apt/sources.list deb http://archive.canonical.com/ lucid partner

Save & Exit. Now update apt-get and install webmin using

apt-get update
apt-get install webmin

It will take some time to install webmin depend on your internet connection (usually less then 10 minutes) , afterward you can access it using

https://yourlinuxboxip:10000

(TIP: you can change the webmin port by editing in /etc/webmin/miniserv.conf and change the port number to any port you like, for example 443 or 1234)


IPTABLES Related:

To view IPTABLES rules, use following

iptables -L
iptables -t nat -L

============================== To clear all iptables rules, use following

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

============================== To Block Ip RANGE from accessing your linux box (in INPUT chain) iptables -A INPUT -m iprange --src-range 1.2.3.4-5.6.7.8 -p tcp --dport 8080 -j DROP To Block Single Ip from accessing your linux box (in INPUT chain) iptables -A INPUT --src 1.2.3.4 -j DROP
To Block Single Ip from accessing SSH port 22 of your linux box (in INPUT chain) iptables -A INPUT --src 1.2.3.4 -p tcp --dport 22 -j DROP To Block all users from accessing SSH port 22 of your linux box (in INPUT chain) iptables -A INPUT -p tcp --dport 22 -j DROP DNAT port 80 request coming from LAN systems to squid 8080 ($SQUID_PORT) , This is to make your squid as transparent proxy iptables -t nat -A PREROUTING -i LAN_Interface -p tcp --dport 80 -j DNAT --to SQUID_IP:PORT
==============================


To Delete single iptables rule via number or name

iptables -vnL –line-numbers
iptables -L INPUT –line-numbers
iptables -D INPUT 4

Using Putty from Shortcut to login to remote linux server without password [Jz]

To login to remote Linux server using PUTTY with out password, you can use public keys or quick way is to use shortcut trick. Not recommended if your system is not secure or used by other people, For example:

C:\temp\putty.exe -ssh root@192.168.1.1 -pw yourpassword

TIP: Change the C:\temp to match your folder where putty.exe is available. To login from Mikrotik to linux and Linux to Linux, read the below . . .

https://aacable.wordpress.com/2011/11/25/howto-login-on-remote-mikrotik-linux-without-password-to-execute-commands/


Bandwidth Monitoring tool for Ethernet Interface [Jz]

There are plenty of tools to do the task, I found bwm-ng the quickest 🙂 To install it on DEBIAN/UBUNTU , use

apt-get install bwm-ng

To install it on FEDORA / CENTOS, use

yum -y install bwm-ng

To run it , type

bwm-ng

Use following shortcut to tune bwm-ng Press + to set time interval, default is set to 0.5 seconds which is too short, make it at least 1.00 or 1.1 to get mroe stable value. Press u to get DATA in kb (kilobits), default is set to KB (Kilo Bytes) To see data of eth0, with kilobits, and 1 second refresh rate , use following . . .

bwm-ng +I eth0 -u bits -t 1000


SQUID LOGS & Others[Jz]

To view SQUID access logs for all users, use

tail -f /var/log/squid/access.log

To view SQUID access logs for CACHE HIT

tail -f /var/log/squid/access.log |grep HIT

To view SQUID access logs for specific user ip, use

tail -f /var/log/squid/access.log |grep 192.168.1.20

To view SQUID process

ps aux |grep squid
ps aux |grep storeurl.pl # if you have url rewrite program configured like for youtube caching

Start SQUID in diagnostic mode (no daemon mode) If you have some problems in your squid config and its not starting, then start squid in debug mode, use following command squid -d1N it will start in no daemon mode and will show you details and errors if any. ↓ BLOCK WEB SITES IN SQUID [HTTPS SUPPORT TOO] Add in squid.conf and reload squid


acl fb dstdomain .facebook.com
http_access deny CONNECT fb all
acl badsites dstdomain .us.il.yimg.com .msg.yahoo.com .pager.yahoo.com
acl badsites dstdomain .rareedge.com .ytunnelpro.com .chat.yahoo.com
acl badsites dstdomain .voice.yahoo.com
http_access deny fb

Howto block User IP or series in SQUID ACL

If you want to block specific IP series in SQUID via ACL and want to redirect it to a local page (useful for non payment reminder) use following

#Allow Web Server access where our ad page is hosted , it can be local or remote whatever you like : p
acl allow_web_server dst 192.18.100.10
http_access allow allow_web_server

# Create ACL to block EXPIRED USERS pool and redirect it to advertisement page
acl expired_clients src 192.168.100.0/24
http_access deny expired_clients
deny_info http://101.11.11.240/nonpayment/nonpayment.htm expired_clients

SCRIPT TO CHECK SQUID or any other service STATUS AND START IT IF REQUIRED [Jz]

Following script [checksquid.sh] will check SQUID service status , and if it found squid stop, it will start it auto, if the squid is already running , it will do nothing :) First create file in any folder or temp folder by

mkdir /temp
touch /temp/checksquid.sh
chmod +x&nbsp; /temp/checksquid.sh

Now edit this file

nano /temp/checksquid.sh

& paste the following code

#!/bin/bash
pid=`pidof $1`
if [ $pid == ]; then
echo $1 service is NOT running, Trying to start again . . .
service $1 start
else
echo $1 service is Running OK , no further action required, EXITING&nbsp; . . .
fi

. Save & Exit. Test it by running

/temp/checksquid.sh squid

You can check any service status with above command, if the service is not running , it will try to start with.

You can create its cron entry to run it after every 5 minutes.

For example, add it using CRON by following

crontab -e

and add following line

*/5 * * * * /temp/checksquid.sh

GENERAL LINUX COMMANDS [Jz]

To view Disk information

df -h

To view free memory # in Megabytes

free -m

# in Gigabytes

free -g

To view Linux Release and architecture

lsb-release -a

You will something like below root@server:~# lsb_release -a Distributor ID: Ubuntu Description:    Ubuntu 10.04.4 LTSRelease:        10.04 Codename:       lucid To view Linux Architecture if its 32bit (x86) or 64bit

uname -a

root@server:~# uname -a Linux server 2.6.32-50-server #112-Ubuntu SMP Tue Jul 9 20:45:08 UTC 2013 x86_64 GNU/Linux ↓ x86_64 shows that the architecture is 64 bit ↓ if you see something i386 , or i686 ,  it means you have 32 bit version. . To view CPU support

cat /proc/cpuinfo

and look for flag “lm” in the flags: column. If it’s there then it’s 64bit CPU.


TO EMPTY ANY FILE FROM COMMAND PROMPT

To empty any file contents, For example if you want to clear all the contents in the squid.conf file , so that you can start with new, use following

cat /dev/null /etc/squid/squid.conf

TO ADD ANY WORD IN STARTING OF EVERY LINE IN ANY FILE [Jz]

One way to do this is to use awk.


awk '{ printf YOURTEXT; print }'&nbsp; CURRENT_FILENAME&nbsp; &gt; OUTPUT_FILENAME

If you want to modify the file in place, you can use sed with the -i switch.


sed -i -e 's_.*_YOURTEXT;_'&nbsp; CURRENT_FILENAME

. .

Adding PROXY for command line programs like WGET [Jz]


http_proxy=http://127.0.0.1:8080

To test if SQUID service is not responding to requests, and restart , .

http_proxy=http://127.0.0.1:8080 /wget http://ya.ru -O /dev/null || squid -k reload

Mount USB in Ubuntu Server (12.x or any)

You can either install “usb-mount”, or mount it manually Get the information (what is the device, e.g. /dev/sdb1):

fdisk -l

Create any foldeer where you will mount your USB, like in /usb

mkdir /usb

Mount the USB drive:

mount -t ntfs /dev/sdb1 /usb

-t is the filesystem type. Most flash drives are NTFS formatted if used on windows, or FAT32 (vfat). To Unmount the drive: Either:

umount /dev/sdb1
Or:
umount /usb

Mysql Related Commands

Following are few MYSQL related stuff for personnel reference. To print RM Managers from DB

use radius;
show tables;
select * from rm_managers limit 0 , 30;

to execute commands in mysql terminal

(\g) Send command to mysql server.
exit'
(\q) Exit mysql. Same as quit.

To search from table (for online radius users)

SELECT * FROM radacct WHERE acctstoptime IS NULL;

To search from table with specific condition matched;

SELECT username, owner from rm_users where username='zaib' AND owner='admin';

To view MYSQL command history

cat ~/.mysql_history

Create DB in mysql

create database test;
create user 'zaib'@'localhost' identified by 'zaib';
grant all on test.* to zaib@localhost;

RESULT:

mysql&gt; create database test;
Query OK, 1 row affected (0.00 sec)

mysql&gt; create user 'zaib'@'localhost' identified by 'zaib';
Query OK, 0 rows affected (0.00 sec)

mysql&gt; grant all on test.* to zaib@localhost;
Query OK, 0 rows affected (0.00 sec)

Adding Virtual NIC in ubuntu

To add virutal nic in ubuntu, issue this command you can also add these commands in startup as well.

ip link add link eth0 address 11:22:33:44:55:66 eth0.1 type macvlan
ifconfig eth0.1 up
ifconfig eth0.1 10.0.0.2

Change MYSQL old ROOT password

mysql -u root -pOLDPASSWORD
use mysql;
update user set password=PASSWORD('NEW-PASSWORD') where User='root';
flush privileges;

CHANGE RADIUS USER PASSWORD FOR RADIUS MANAGER IN MYSQL

use mysql;
SET PASSWORD FOR 'radius'@'localhost' = PASSWORD('NEW-PASSWORD');
SET PASSWORD FOR 'conntrack'@'localhost' = PASSWORD('NEW-PASSWORD');

#Then change password in radius manager related Files for user 'radius'

/etc/radiusmanager.cfg
/var/www/radiusmanager/config/system_cfg.php
/usr/local/etc/raddb/sql.conf

Change the password to new password in above files.


Howto install ‘sendemail’ tool to send email via Gmail ID.

Very Well with Tested For UBUNTU 12.4 / 32bit … Quick copy paste …

apt-get -y install libio-socket-ssl-perl libnet-ssleay-perl perl
apt-get -y sendemail

To test email use following command, make sure to change the GMAIL ID and password. # To send simple email

sendemail -u "Test Email - subject" -o tls=yes -s smtp.gmail.com:587 -t RECEIVER-EMAIL@gmail.com -xu YOUR-GMAILID@gmail.com -xp GMAIL-PASS&nbsp;-f &nbsp;YOUR-GMAILID@gmail.com -o -o message-content-type=text -m "this is meail body - zaib"
# To send simple email with file attached
sendemail -u "Test Email - subject" -o tls=yes -s smtp.gmail.com:587 -t RECEIVER-EMAIL@gmail.com -xu YOUR-GMAILID@gmail.com -xp GMAIL-PASS&nbsp;-f YOUR-GMAILID@gmail.com -o -o message-content-type=text -m "this is meail body - zaib" -o message-file=/temp/test.txt -o message-content

Mount Remote Windows Share in local /mnt/win folder

If we want to mount remote windows shared folder in local /mnt/win folder, the follow below  commands… sudo apt-get install cifs-utils #Make WIN folder under/mnt mkdir /mnt/win #mount remote windows shared folder using

mount -t cifs -o uid=1000,gid=1000,username=ADMINISTRATOR_ID,password=MY_PASSWORD&nbsp;//REMOTE_SERVER_IP_OR_NAME/FOLDER /mnt/win/

🙂


Execute Powershell command on remote windows

winexe -U DOMAIN/ID%'PASS' //IP_OR_NAME 'powershell.exe -inputformat none -command "c:\script\powershell_script_name.ps1 "'

Booting Ubuntu 16.4 Desktop into Text mode To always boot ubuntu into text mode, use

sudo systemctl set-default multi-user.target

To return to default booting into X, use

sudo systemctl set-default graphical.target

To see the current default target,

sudo systemctl get-default

GDRIVE .

Change RADIUS user password in mysql DB

SET PASSWORD FOR 'conntrack'@'localhost' = PASSWORD('NEWPASS');

Regard’s
Syed Jahanzaib

January 21, 2012

UBUNTU rc.local not executing problem and its workaround

Filed under: Linux Related — Tags: , , , — Syed Jahanzaib / Pinochio~:) @ 9:03 PM

Sometimes in ubuntu, rc.local does not execute , specially in fresh installation.
So if you encounter this issue , you can solve it by using two methods.
I have used these methods several time with success. Also make sure you command entries are above ‘exit 0‘ line
Also adding 10 seconds delay helps in few cases.

 

Method # 1 , By Using WEBMIN

Method # 2 , By Removing -e from /etc/rc.loacl file [and add 10 seconds delay]

 

Method # 1 , By Using WEBMIN

Install webmin from http://www.webmin.com/deb.html

After installati0n is done, open webmin and goto
SYSTEM > BOOTUP & SHUTDOWN
Scroll down and and Click on rc.local
Select YES on Start at boot time?

As shown in the image below.

Method # 2 , By Removing -e from /etc/rc.loacl file

Edit rc.local file by

nano /etc/rc.local

at first line remove -e  for example

Change from

#!/bin/sh -e

to

#!/bin/sh

Save & Exit, then Reboot and see, hopefully rc.local will execute on the boot.

Also adding following sleep 10 directive before any script in rc.local will help. e.g:

Example of rc.local

 

root@ahmad-desktop:~# cat /etc/rc.local
#!/bin/sh -e
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
# In order to enable or disable this script just change the execution
# bits.
# By default this script does nothing.

# Add 10 seconds delay …

sleep 10

#Followign command will run my script for internet sharing etc / zaib

/etc/fw.sh
exit 0

 

 

Regard’s
Syed Jahanzaib

%d bloggers like this: