Linux InterviewQuestions - For - Level - 2 - Ratnakar PDF
Linux InterviewQuestions - For - Level - 2 - Ratnakar PDF
RatnakarPage 1
[Pick the date] [LINUX NOTES FOR LEVEL 2]
1. What is partition?
A partition is a contiguous set of blocks on a drive that are treated as independent disk.
2. What is partitioning?
Partitioning means to divide a single hard drive into many logical drives.
3. Why we have multiple partitions?
● Encapsulate our data. Since file system corruption is limited to that partition only. So we can save our data
from accidents.
● We can increase the disk space efficiency. Depending on our usage we can format the partition with
different block sizes. So we can reduce the wastage of the disk.
● We can limit the data growth by assigning the disk quotas.
4. What is the structure of the disk partition?
● The first sector of the O/S disk contains the MBR (Master Boot Record). The MBR is divided into 3 parts and
it's size is 512 bytes.
● The first part is IPL (Initial Program Loader) and it contains the Secondary Boot Loader. So, IPL is responsible
for booting the O/S and it's size is 446 bytes.
● The second part is PTI (Partition Table Information). It contains the number of partitions on the disk, sizes of
the partitions and type of the partitions.
5. Explain the disk partition criteria?
● Every disk can have max. 4 partitions. The 4 partitions are 3 Primary partitions and 1 Extended partition.
● The MBR and O/S will install in Primary partition only.
● The Extended partition is a special partition and can be further divided into multiple logical partitions.
6. How to identify the disks?
In Linux different types of disks will be identified by different naming conventions.
● IDE) drives will be shown as /dev/hda, /dev/hdb, /dev/hdc, ...etc., and the partitions are /dev/hda1,
/dev/hda2, /dev/hda3, ...etc.,
● iSCSI/SCSI and SATA drives will be shown as /dev/sda, /dev/sdb, /dev/sdc, ...etc., and the partitions are
/dev/sda1, /dev/sda2, /dev/sda3, ...etc.,
● Virtual drives will be shown as /dev/vda, /dev/vdb, /dev/vdc, ...etc., and the partitions are /dev/vda1,
/dev/vda2, /dev/vda3, ...etc.,
IDE -----> Integrated Drive Electronics.iSCSI -----> Internet Small Scale System Interface.
SCSI -----> Small Scale System Interface.
7. What is file system?
It is a method of storing the data in an organized fashion on the disk. Every partition on the disk except MBR
and
Extended partition should be assigned with some file system in order to make them to store the data. File
system is applied on the partition by formatting it with a particular type of file system.
8. What are the different types of file systems supported in Linux?
The Linux supported file systems are ext2, ext3, ext4, xfs, vfat, cdfs, hdfs, iso9660 ...etc.,
RatnakarPage 2
[Pick the date] [LINUX NOTES FOR LEVEL 2]
The ext2, ext3, ext4 file systems are widely used in RHEL-6 and xfs file system is introduced on RHEL-7.
The vfat file system is used to maintain a common storage between Linux and Windows O/S.
The cdfs file system is used to mount the CD-ROMs and the hdfs file system is used to mount DVDs.
The iso9660 file system is used to read CD/DVD.iso image format files in Linux O/S.
9. What is mounting and in how many types can we mount the partitions?
Attaching a directory to the file system in order to access the partition and it's file system is known as mounting.
In general the sub directories under /mnt directory are the mount points to mount the file systems.
There two types of mountings in Linux/Unix.
● Temporary Mounting :
In a temporary mounting first we create a directory and mount the partition on that directory. But this type
mounting will last only till the system is up and once it is rebooted the mounting will be lost.
Example:# mount <options><device name><directory name (mount point)>
● Permanent Mounting :
In this also first we create the directory and open the /etc/fstab file and make an entry as below,
<device name><mount point><file system type><mount options><take a backup or not><fsck value>
Whenever the system reboots mount the partitions according to entries in /etc/fstab file. So, these type of
mountings are permanently even after the system is rebooted.
# mount -a to mount the partitions without reboot)
10. What are differences between the ext2, ext3, ext4 and xfs file systems?
1. Stands for Second Stands for Third Stands for Fourth Stands for Extended file
Extended file system. Extended file system. Extended file system. system.
2. Does not having Supports Journaling Supports Journaling Supports Journaling
Journaling feature. feature. feature. feature.
3. Max. file size can be Max. file size can be Max. file size can be Max. file size can be
from 16 GB to 2 TB. from 16 GB to 2 TB. from 16 GB to 16 TB. from 16 GB to 8EB.
4. Max. file system size Max. file system size Max. file system size Max. file system size
can be from 2 TB to 32 can be from 2 TB to 32 can be from 2 TB to 1 EB can be from 2 TB to
TB TB *1EB = 1024 Peta bytes. 16EB.
5. Cannot convert ext file We can directly convert We can convert all file Unmount and mount
system to ext2. ext2 to ext3 file systems to ext4 file the file system is
system. system. required.
RatnakarPage 3
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# df -hT (to see device name, file system type, size, used, available size, use% and mount point)
19. How to see the size of the file or directory?
# du -h <filename or directory name> (to see the size of the file or all the file sizes in that directory)
# du -h (to see all the file sizes which are located in the present working directory)
# du .| sort -nr | head -n10 (to see the biggest files from current location)
# du -s * | sort -nr | head -n10 (to see the biggest directories from that partition)
# ncdu (to list biggest files and directories, we have to install the ncdu package before executing this)
20. How to assign a label to the partition?
# e2label <device name or partition name><label name> (to assign the label to that partition)
Example : # e2label /dev/sdb1 oradisk (to assign oradisk label to /dev/sdb1 partition)
# mount -l (to list all the mounted partitions along with their labels)
RatnakarPage 5
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Command (m for help) : w (to save the changes into the disk)
# partprobe /dev/sdb (to update the partition table information)
# mkswap <device or partition name> (to format the partition with swap file system)
Example : # mkswap /dev/sdb2 (to format the /dev/sdb2 partition with swap file system)
# swapon <device or partition name> (to activate the swap space)
Example : # swapon /dev/sdb2 (to activate /dev/sdb2 swap space)
# free -m (to see the swap size)
# vim /etc/fstab (to make an entry to permanent mount the swap partition)
/dev/sdb2 swap swap defaults 0 0
Esc+:+wq! (to save and exit)
25. What are the attributes of the file system?
(i) Inode number
(ii) File name
(iii) data block
RatnakarPage 6
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 7
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# e2fsck <partition name> (to check the consistency of the file system in interactive mode)
# e2fsck -p <partition name> (to check the consistency of the file system without interactive mode)
# mke2fs -n <partition name> (to see the superblock information)
# mke2fs -t <file system type><partition name> (to format the partition in the specified file system type)
# mke2fs <partition name> (to format the partition in default ext2 file system type)
# blockdev --getbs /dev/sdb1 (to check the block size of the /dev/sdb1 file system)
# fsck <device or partition name> (to check and repair the file system)
Note: Before running this command first unmount that partition then run fsck command.
# umount -a (to unmount all the file systems except ( / ) root file system)
# mount -a (to mount all the file systems which are having entries in /etc/fstab file)
# fsck -A (to run fsck on all file systems)
# fsck -AR -y (to run fsck without asking any questions)
# fsck -AR -t ext3 -y (to run fsck on all ext3 file systems)
# fsck -AR -t no ext3 -y (to run fsck on all file systems except ext3 file systems)
# fsck -n /dev/sdb1 (to see the /dev/sdb1 file system report without running fsck)
# tune2fs -l /dev/sdb1 (to check whether the journaling is there or not)
# tune2fs -j /dev/sdb1 (to convert ext2 file system to ext3 file system)
# tune2fs -l /dev/sdb1 (to check whether the journaling is added or not)
# tune2fs -O ^has_journal /dev/sdb1 (to convert ext3 file system to ext2 file system)
# tune2fs -O dir_index, has_journal, unit_bg /dev/sdb1 (to convert ext2 file system to ext4 file system)
# tune2fs -O extents, dir_index, unit_bg /dev/sdb1 (to convert ext3 file system to ext4 file system)
# mount -o remount, rw /dev/sdb1 (to mount the partition with read and write permissions)
# mount -o remount, ro /dev/sdb1 (to mount the partition with read only permissions)
# mount <mount point or directory name> (to check whether this directory is mount point or normal directory)
# dump2fs <device or partition name> (to check the metadata of the partition and repair the metadata)
# fdisk -l (to list total hard disks attached to system and their partitions)
# fuser -cu <device or partition name> (to see the users who are accessing that file system)
# fuser -cK <device or partition name> (to kill the users processes who accessing the file systems)
Note: Even though we kill those users processes sometimes we cannot unmount those partitions, so if this
situation arises then first see the process id's of the user opened files by # lsof <mount point>and
killthose processesforcefully by # kill -9 <process id>
# journalctl (It tracks all the log files between two different timings and by default saved in /run/log location)
* /run/log is mounted on tmpfs file system. ie., if system is rebooted, the whole information in that location will
be deleted or erased.
* We can change the location of the /run/log to another like /var/log/journal by
# mkdir -p /var/log/journal (to make a directory in /var/log location)
# chown root : systemd-journal /var/log/journal (to change the group ownership of /var/log/journal)
# chmod g+s /var/log/journal (to set the sgid on /var/log/journal)
# killall -URS1 systemd-journald (It is necessary to kill old /run/log process and the location of journal
messages is changed to /var/log/journal)
RatnakarPage 8
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# journalctl -n 5 (to display last five lines of all the log files)
# journalctl -p err (to display all the error messages)
# journalctl -f (to watch journalctl messages continuously)
# journalctl --since<today> or <yesterday> (to see all the journalctl messages since today or yesterday)
# journalctl --since "date" --until "date" (to see the journal messages between the specified two dates)
# journalctl -pid=1 (to see the pid=1 process name)
# auditctl (to see the audit report)
# sar (sar utility is to watch the system activity report like CPU, memory,...etc.,)
# smartctl -H <hard disk name> (to check the health of the specified hard disk)
# smartctl -i <hard disk name> (to see the information of the specified hard disk)
# smartctl -a <hard disk name> (it gives more information of the specified hard disk)
Note: In the above command results go to Valueand Tresh fields. If Tresh is more than the Value then
immediately hard disk change is required. If Tresh is lower than the Value then hard disk is ok. So,
the Tresh is always lower than the Value, otherwise hard disk change is required immediately and
report this manager.
It is the standard partition that we add to the LVM. Normally a physical volume is a standard primary or logical
partition with the partition code as 8e.
Physical Extent (PE) :
It is chunk of disk space. Every physical volume is divided into a number of equal sized PEs.
Volume Group (VG) :
It is composed of a group of physical volumes and logical volumes. It is the organizational group of LVM.
Logical Volume (LV) :
It is composed of a group of LEs. We can format (make a file system) and mount any file system on the logical
volume. The size of these logical volumes can easily be increased or decreased as per the requirement.
Logical Extent (LE) :
It is also a chunk of disk space. Every logical extent is mapped to a specific physical extent.
3. How to create the LVM, make a file system and mount that permanently?
(i) Take two physical disks for example /dev/sdb and /dev/sdc. if there is no second disk then make the
required partitions using # fdisk command and change the partition code as 8e.
(ii) Convert the Physical disk into physical volumes by,
# pvcreate /dev/sdb /dev/sdc
(iii) Then create the volume group by combining physical volumes by,
# vgcreate <volume group name><physical volume names> or
# vgcreate -s <PE size in MBs><volume group name><physical volume names>
(iv) Then create the logical volume on the above created volume group by,
# lvcreate -L +<size in MBs> -n <logical volume name><Volume group name> or
# lvcreate -l <no. of PEs> -n <logical volume name><volume group name>
(v) Make a file system on the above created logical volume by,
# mkfs.ext2/ext3/ext4/xfs /dev/<volume group name>/<logical volume name>
(vi) Create a mount point to mount the above created LVM file system by,
# mkdir /mnt/<directory name>
(vii) Mount the LVM on the above created mount point temporarily by,
# mount /dev/<volume group name>/<logical volume name><mount point>or
Mount the LVM on mount point permanently by,
# vim /etc/fstab
/dev/<VG name>/<LV name> /mnt/<directory> <file system type> defaults 0 0
Esc+:+wq!
# mount -a
# df -hT (to see the mounted partitions with file system types)
4. How to see the details of the Physical Volumes?
# pvs (displays all physical volumes with less details)
# pvdisplay (displays all physical volumes with more details)
# pvdisplay <physical volume name> (displays the details of the specified physical volume)
# pvscan (to scan all the physical volumes)
#pvscan <PV name> (to scan the specified physical volume)
RatnakarPage 10
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 11
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 12
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# ls
11. How to delete or remove the logical volume?
● To delete or remove the logical volume, first unmount the file system by # umount <mount point>
● Remove the entry in /etc/fstab file.
● Remove the logical volume by # lvremove </dev/vgname/lvname>command.
● Verify whether the logical volume is removed or not by # lvs or # lvdisplay command.
Example : # umount <file system mount point>
# vim /etc/fstab (delete the entry of the logical volume)
Esc+:+wq! (save and exit the file)
# lvremove </dev/vgname/lvname>
# lvs or # lvdisplay (to verify whether logical volume is removed or not)
12. How to delete or remove the volume group?
● To delete or remove the volume group, first make sure that any logical volume should not be mounted
because while removing a volume group it will delete or remove the logical volumes in that volume
group.
● Then delete or remove the volume group by # vgremove <vgname>command.
● Verify whether the volume group is remove or not by # vgs or # vgdisplay command.
Example : # umount <file system mount point> (to unmount the file system if there is any LV)
# vim /etc/fstab (delete the entry of the logical volume)
Esc+:+wq! (save and exit the file)
# vgremove <vgname>
# vgs or # vgdisplay (to verify whether volume group is removed or not)
13. How to delete or remove the physical volume?
● Deleting or removing a physical volume is very simple and the only thing we should check that the
physical volume we are going to delete should not belong to any volume group ie., we can only delete or
remove the physical volume which is free.
● Then delete or remove the physical volume by # pvremove <pvname>command.
● Verify whether the physical volume is removed or not by # pvs or #pvdisplay command.
Example : # pvremove <pvname>
# pvs or #pvdisplay (to verify whether the physical volume is removed or not)
14. How to restore the volume group which is removed mistakenly?
● First unmount file system by # umount <file system mount point> command.
● Check the volume group backup list by # vgcfgrestore --list <volume group name>command.
● Then remove the logical volume by # lvremove </dev/vgname/lvname> command.
● Copy the backup file which is taken backup before removed the volume group from the above backup list
and paste it in this command # vgcfgrestore -f <paste the above copied file name><vgname>
● The logical volume is created automatically after restoring the volume group but the volume group and
logical volumes both will be in inactive state. So, check the state of the volume group by #vgscanand the
logical volume state by # lvscan commands.
● Then activate that volume group by # vgchange -ay <volume group name>commandand activate the
logical volume by # lvchange -ay <logical volume name>command.
RatnakarPage 13
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# mount -a
15. How to change the volume group name and other parameters?
# vgrename <existing volume group name><new volume group name> (to rename the volume group)
By default, unlimited logical volumes can be created per volume group. But we can control this limit by
# vgchange -l <no.><volume group> (to limit max. no. of logical volumes to the specified number)
Example : # vgchange -l 2 <vgname> (to limit max. 2 logical volumes cab be created in this volume group)
# vgchange -p <no.><volume group> (to limit max. no. of physical volumes to the specified number)
Example : # vgchange -p 2 <vgname> (to limit max. 2 physical volumes can be added to this volume group)
# vgchange -s <block size in no.><volume group> (to change the block size of the volume group)
Example : # vgchange -s 4 <vgname> (to change the volume group block size to 4MB)
16. How to change the logical volume name and other parameters?
# lvrename <existing lvname><new lvname> (to rename the logical volume)
# lvchange -pr <logical volume> (to put the logical volume into read only mode)
# lvs (to see the logical volume permissions)
# lvchange -prw <logical volume> (to put the logical volume into read and write mode)
17. How to disable the volume group and logical volume?
# vgchange -an <volume group> (to disable the volume group)
# lvchange -an <logical volume> (to disable the logical volume)
18. How to take a backup of the volume group?
# vgcfgbackup (to take a backup of all volume groups)
# vgcfgbackup <volume group> (to take a backup of the specified volume group)
19. What is the configuration file of the logical volume?
# cat /etc/lvm/lvm.conf (to see the contents of the LVM configuration file)
20. What are the locations of the logical volume and volume groups?
# cd /etc/lvm/backup (the logical volumes backup location)
# cd /etc/lvm/archive (the volume groups backup location)
21. How to know the current version of the LVM package?
# rpm -qa lvm* (to know the current version of the LVM package)
22. What are the attributes of the volume group?
# vgs (to see the attributes of the volume group)
[ The attributes are w ----> writable z ----> extendable n ----> normal ]
RatnakarPage 14
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 15
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# cdrecord /root/Desktop/rhel6.iso (to write the CD/DVD ROM. Before executing this command put the
empty CD/DVD into CD/DVD drive)
# eject (to eject the CD/DVD drive tray)
# eject -t (to insert and close the CD/DVD drive tray)
30. What is RAID? What is the use of the RAID and how many types of RAIDs available?
RAID stands for Redundant Array of Independent Disks.
It provides fault tolerance, load balancing using stripping, mirroring and parity concepts.
There are mainly two types of RAIDs available.
(i) Hardware RAID (Depends on vendors and also more expensive)
(ii) Software RAID (Does not depends on vendors and less expensive when compared to Hardware RAID and
also it is maintained by system administrator only.
31. How many types of software RAIDs available and their requirements?
(i) RAID - 0 ---- Stripping ---- Minimum 2 disks required
(ii) RAID - 1 ---- Mirroring ---- Minimum 2 disks required
(iii) RAID - (1+0) --- Mirroring + Stripping ---- Minimum 4 disks required
(iv) RAID - (0+1) --- Stripping + Mirroring ---- Minimum 4 disks required
(v) RAID - 5 ---- Stripping with parity ---- Minimum 3 disks required
32. How to configure RAID - 0 in Linux?
● To configure RAID - 0, minimum 2 disks are required and the partition id is "fd".
● Reading and writing is very fast. So, it produces high performance.
● if one disk is failed we cannot recover the data.
● So, there is no redundancy and fault tolerance in RAID - 0.
Example : For example if the data is 1, 2, 3, 4, 5 and 6 then ....
Disk - 1 Disk - 2
RatnakarPage 16
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Disk - 1 Disk - 2
RatnakarPage 17
[Pick the date] [LINUX NOTES FOR LEVEL 2]
3+4
5+6
1+2
4
RatnakarPage 19
[Pick the date] [LINUX NOTES FOR LEVEL 2]
42. How many types of disk space issues can we normally get?
(i) Disk is full.
(ii) Disk is failing or failed.
(iii) File system corrupted or crashed.
(iv) O/S is not recognizing the remote luns when scanning, ...etc.,
43. What is a link file and how many types?
Link file is a short cut file to the original file. Creating and removing (deleting) inks between two files is known
as managing links. There are two types of links files available in Linux.
(i) Soft link
(ii) Hard link
44. What is soft link and how to create it?
Soft link is nothing but a short cut file. If original file is deleted, no use of short cut file. ie., we cannot access the
original data by selecting the link file. Soft link can be applied on both directories and files. These files can be
stored in any of the file system. ie., the original file may be in one file system and the link file may be on
another file system. If we edit any file, the link files are also updated automatically. When we create a soft link file,
the permissions are full permissions. The soft link file and the original file inode no's are different. The size of the
soft link file is same as the length of the original file name. The soft link can be created by
# ln -s <original file or directory><link file or directorywith path> (to create a soft link)
# ln -s /root/script /root/Desktop/script (to create a link file for the script and stored on root Desktop)
45. What is hard link and how to create it?
Hard link in nothing but a backup file. If the original file is deleted, there is no effect on hard link file. ie., we can
access the original file data even though the link file is deleted. Hard links can be applied on files only not on
directories. Hard link files can be stored in the same file system. ie., original and hard link files both should be in
the same file system not on different file systems. The inode no's are same for original and hard link files. If the
original is edited, the updations are applied on both original and hard link files. The size of the hard link file is
same as the size of the original file.
46. What are the commands to search files and directories?
To search files and directories there are two commands.
(i) # locate
(ii) # find
47. Explain the locate command and how to use it?
locate always looks the locate database and not in a specific location. The data of the locate is stored in
/var/lib/mlocate/mlocate.db file. If the data is not updated in locate database or the locate database is
available or locate database is deleted, we cannot locate the files and directories. # updatedb is the command
to update the locate database. locate database cannot be find the newly created files and directories. It is not
recommended to use on production servers because it impacts on performance of the servers. So, to overcome
this problem we normally use # find command on production servers.
# updatedb (to update the locate database)
# locate <file name/directory name> (to search the specified file or directory)
48. Explain the find command and how to use it?
find command required the specific location. Without specific location we cannot find the files or directories.
RatnakarPage 20
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 21
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# find / -mtime 2 (to search files/directories which are modified within 2 days)
# find / -name "*.mp3" -exec rm -rf { } \; (to search all .mp3 files and delete them)
# find / -name "*.mp3" -exec cp -a { } /ram \;(to search all mp3 files and copy them into /ram directory)
# find / -user student -exec cp -a { } /ram \; (to search student user's files and directories and
copy them into /ram directory)
# find / -nouser -exec mv -a { } /home/ram \; (to search files/directories which are not belongs to
any user and move them into /home/ram directory)
# du -h / |sort -r |head -n 10 (to search 10 big size files in reverse order)
RatnakarPage 22
[Pick the date] [LINUX NOTES FOR LEVEL 2]
1. What is a user?
In Linux user is one who uses the system. There can be at least one or more than one user in Linux at a time.
2. How many types of users available in Linux?
There are 5 types of users available in Linux.
(i) System user (Admin user who control the whole system nothing but root user).
(ii) Normal user (Created by the Super user. In RHEL - 7 the user id's from 1000 - 60000).
(iii) System user (Created when application or software installed and are maintained system deamons).
(In RHEL - 7 the System users are (i) Static system user id's from 1 - 200 and (ii) Dynamic system user
user id'sfrom 201 - 999).
(iv) Network user (Nothing but remote user, ie., who are login to the system trough network created in
Windows Active Directory or in Linux LDAP or NIS).
(v) Sudo user (The normal users who are having admin or Super user privileges)
The types of users in Linux and their attributes:
Default
Type of User Example User ID Group ID Home Directory
Shell
Super User Root 0 0 /root /bin/bash
Normal users
Same as Same as
Sudo User with admin /home/<user name> /bin/bash
normal users normal users
privileges
RatnakarPage 23
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 24
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 25
[Pick the date] [LINUX NOTES FOR LEVEL 2]
.bash_profile : This is user's login startup program file. It will execute first whenever the user is login. It consists
the user's environmental variables.
.bashrc : This file is used to create the user's custom commands and to specify the umask values for that user's
only.
20. What is a group?
The collection of users is called a group. There are two types of groups.
Primary group : It will be created automatically whenever the user is created. User belongs to on group is called
primary group.
Secondary group : It will not create automatically. The admin user should be created manually and users
belongs to more than one group is called secondary group. A user can be assigned to max.
16 groups. ie., 1 primary group and 15 secondary groups.
21. What is the command to check the user belongs to how many groups?
# groups <user name>
22. What is the syntax to create the group?
# groupadd <options><group name>
The options are, -f -----> add the group forcefully
-g -----> group id no.
-o ----->non-unique (duplicate group id)
-p -----> group password
-r -----> system group
-R -----> root group
23. What is the syntax to modify the group?
# groupmod <options><group name>
The options are, -g ------> group id
-n ------> new name for existing one, ie., rename the group
-o ------> non-unique (duplicate group id)
-p ------> group passwd
-R ------>root group
24. What is syntax to delete the group?
# groupdel <group name> (to delete the group without options)
# groupdel -R <group name> (to delete the group and apply changes to the root directory)
25. How to assign the password to the group?
# gpasswd <group name> (to assign a password to the group without any options)
# gpasswd <options><group name>
The options are, -a ------>add users to the group
-d ------> delete the user from the group
-r ------> remove the group password
-R ------> restrict to access that group
-A ------> set the list of Administrative users
-M ------> set the list of group members
26. How to check the integrity or consistency of the group?
RatnakarPage 26
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# grpck (it will check the integrity or consistency in /etc/gpasswd and /etc/gshadow files)
27. How to restore /etc/gshadow file if deleted by mistake?
# grpconv (it creates the /etc/gshadow file from /etc/group file)
28. How to change the password aging policies?
we can change the password policies in 2 ways.
(i) First open the /etc/login.defs file and modify the current values.
Example : # vim /etc/login.defs
min - 0 -----> means the user can change the password to any no. of times.
min - 2 -----> means the user can change the password within 2 days. ie., he can change the
password after 2 days.
max - 5 -----> means the user should change the password before or after 5 days. Otherwise the
password will be expired after 5 days.
inactive - 2 -----> means after password expiry date the grace period another 2 days will be given to
change the password.
warning - 7 -----> means a warning will be given to the user about the password expiry 7 days before
expiry date.
(ii) second by executing the # chage command.
Example : # chage <options><user name>
The options are, -d -----> last day
-E -----> expiry date
-I -----> inactive days
-l -----> list all the policies
-m -----> min. days
-M -----> max. days
-w -----> warning days
Note : Whenever we change the password aging policy using # chage command, the information is will be
modified in /etc/shadow file.
29. How add 45 days to the current system date?
# date -d "+ 45 days"
30. Explain the sudo user?
● Sudoers (nothing but sudo users) allows particular users to run various root user commands without
needing a root password.
● /etc/sudoers is the configuration file for sudoers to configure the normal user as privileged user.
● It is not recommended to open this file using # vim editor because this editor cannot check the syntax
by default and whatever we typed in that file that will blindly save in this file.
● So, one editor is specially available for opening this file, ie., # visudo and all normal users cannot execute
this command. Only root user can run this command.
● Once this file is opened nobody can open this file again on another terminal because "The file is
busy"message is displayed on the terminal for security reasons.
31. How to give different sudo permissions to normal users?
Open the /etc/sudoers file by executing #visudo command and go to line no. 98 and type as
RatnakarPage 27
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 28
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Whenever the user is created and that user is trying to login to the system, it will ask the password. If the root
user is not assign the password to that user, then that normal user can assign the password by his own using the
following commands.
# useradd <user name> (to create the user)
# passwd -S <user name> (to see the status of the password of that user. if root user is not assigned
the password then the password status is locked)
# passwd -d <user name> (then delete the password for that user)
# chage -d 0 <user name> (it will change the password age policy)
# su - <user name> (Try to switch to that user then it will display the following message)
Newpassword : (type new password for that user)
Retype password : (retype the password again)
The other useful commands :
# w (this command gives the login user information like how many users currently login and their
processes)
# who (to see users who are currently login and on which terminal they login)
# last (see the list of users who are login and logout since the /var/log/wtmp file was created)
# lastb (to see the list of the users who tried as bad logins)
# lastreboot (to see all reboots since the log file was created)
# uptime (to see the information from how long the system is running, how many users login and load
average)
* The load average is from 1 sec : 5 secs : 15 secs
# df (to see the mounted partitions, their mount points and amount of disk space)
# du (to see the disk usage of the each file in bytes)
# uname -r (gives the current kernel version)
# last -x (It shows last shutdown date and time)
# last -x grep shutdown (only shutdown time shows ie., grep will filter the 'last -x' command)
* grep: It is used to search a word or sentence in file (ie., inside the file)
* find : It is used to search a command or file inside the system)
# cat /etc/shells or # chsh -l (to see how many shells that are supported by Linux)
/bin/sh -----> default shell for Unix
/bin/bash -----> default shell for Linux
/sbin/nologin -----> users cannot login shell
/bin/tcsh -----> c shell to write 'C++' language programs
/bin/csh -----> c shell to write 'C' language programs
# echo $SHELL (to see the current shell)
# chsh <user name> (to change the user's shell)
Changing shell for <user name> :
New shell : <type new shell for example /bin/sh to change the current shell>
New shell changed (But it will effect by restarting the server)
# date + %R (to display the time only)
# date + %x (to display the date only)
RatnakarPage 29
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 30
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# ls -ld <directory name> (to see the long listing of the directories)
# stat <file name/directory name> (to see the statistics of the file or directory)
34. How many types of the files are there?
There are 7 types of files.
1. - -----> regular file
2. d -----> directory
3. c -----> character device file (Ex. console file, open and close terminals, ...etc.,)
4. b -----> block device file (Ex. device blocks like hard disks, CD/DVD disks)
5. s -----> socket file (programmers will deal this file)
6. p -----> pipe file (programmers will deal this file)
7. l -----> linked file (nothing but short cut file)
35. What are permission types available in Linux and their numeric representations?
There are mainly three types of permissions available in Linux and those are,
read ----- r ----- 4 null permission ------ 0
write ----- r ----- 4
execute ----- r ----- 4
Permissions File Directory
r Read a file Ex. # cat <file name> Read a directory contents Ex. ls /dir
w Create, delete or modify the file contents Create, delete or modify the files in a directory
x Not required for file. It is required only for Go to inside the directory Ex. # cd /dir
scripting files
RatnakarPage 32
[Pick the date] [LINUX NOTES FOR LEVEL 2]
If we plan to allow all the users to execute the root users command then we go for set uid (suid).
It can be applied for user level and is applicable for files only.
# chmod u+s <file name> (to set the suid on that file)
# chmod u-s <file name> (to remove the suid from that file)
# ls -l (if 'x' is replaced with 's' in owner's level permissions that means suid is applied on that file)
-rwsrwxrwx <file name> (here 's' is called set uid or suid)
Example : # chmod u+s /usr/sbin/init 6 (then any user can restart the system using this command
#init 6)
# chmod u+s /sbin/fdisk (then any user can run the fdisk command)
# strings <command name> (to read the binary language of the command ie., the string command
converts the binary language into human readable
language)
# strings mkfs (to read the mkfs command's binary language into human readable language)
* Normally set uid (suid) permission will be given on scripting files only.
43. Explain about set gid (sgid)?
If we plan to allow all the users of one group to get the group ownership permissions then we go for set gid
(sgid).
It can be applied for group level and is applicable on directories only.
Example: # chmod g+s <directory name> (to set the sgid on that directory)
# chmod g-s <directory name> (to remove the sgid from that directory)
44. Explain about sticky bit?
It protects the data from other users when all the users having full permissions on one directory.
It can be applied on others level and applicable for directories only.
Example : # chmod o+t <directory name> (to set the sticky bit permission on that directory)
# ls -ld <directory name>
rwxrwxrwt <directory name> (where 't' is called the sticky bit)
45. What are the uses of passwd and shadow files?
Passwd file : (i) When we create the user one entry is updated in password and shadow files.
(ii) It represents and tell about that user login name , uid, gid, default home directory of the use and default
shell.
(iii) So, using this file we can easily get users information.
Shadow file : (i) This file tells about the login id, user's encrypted password, password when last changed,
min. days the password valid, max. days valid, warning days, inactive days and expiry days.
(ii) If shadow file is missed or deleted we can recover those entries of shadow file using password file.
(iii) We can change the users encrypted passwords with the permissions of the higher authorities in case of
emergency.
46. What is the use of group?
(i) In an organization the whole work is divided into departments for easy maintenance and easy
administration.
(ii) For each department is also represented as group and that group having so many users to do different
works.
RatnakarPage 33
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(iii) So, if we create one group and assign that group to all the users in that department, then we can easily
identify which user belongs to which group.
(iv) We can share files, directories and execute some programs to that group and also give permissions to that
group. So, each user of that group can easily share those directories and also can easily access, execute or
even write in those shared files and directories.
47. Can we login to the user without password?
Yes, we can login.
48. How to recover the root password if missed or deleted?
RHEL - 6 :
(i) Restart the system.
(ii) Select 1st option and press 'e'.
(iii) Select 2nd option and press 'e'.
(iv) At the end give one blank space and type 1 and press Enter key.
(v) Then press 'b' to boot the system in single user mode.
(vi) Then prompt appears and type # passwd root command.
New password : XXXXXX
Retype password : XXXXXX
(vii) Exit
(viii) Then system starts as usual.
RHEL - 7 :
(i) Restart the system.
(ii) Using arrow keys select 1st line and press 'e' to edit.
(iii) Go to Linux 16 line press End key or Ctrl + e to go to the end of the line and give one space.
(iv) Then type as rd.break console=tty1 selinux=0
(v) Then press Ctrl + x to start the computer in single user mode.
(vi) After starting we get swith_root :/# prompt appears and then type as follows.
(vii) # mount -o remount, rw /sysroot and press Enter and then type as follows.
(viii) # chroot /sysroot press Enter.
(ix) Then sh - 4.2 # prompt appears and type as
(x) sh - 4.2 #passwd root
New password : XXXXXX
Retype password : XXXXXX
(xi) sh - 4.2 # exit
(xii) switch-root :/# exit
(xiii) Then the system starts and the desktop appears.
49. How to restrict the users from login?
(i) By removing (deleting) the user we can restrict the user from login.
(ii) Put the user's hostnames as entries in /etc/hosts.deny file (applying TCP wrappers).
(iii) #passwd -l <user name> (by locking his password we can restrict the users).
50. How to put never expiry to a user?
# passwd -x -1 <user login name>
RatnakarPage 34
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 35
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 36
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 37
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 38
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* Then the above 5 user's passwords will be changed at a time. But here the passwords will not be encrypted
while typing passwords. So, anybody can see the passwords. ie., there is no security.
1. What is Network?
Combination of two more computers connected together to share their resources each other by means of
communication like cable is called Network.
2. What is Networking?
It is a connection between two or more computers to communicate with each other.
3. what are the basic requirements for networking?
(a) NIC (Network Interface Card or controller)
(b) Media (nothing but cables)
(c) Topology
(d) Protocol
(e) IP Addresses
4. Explain about NIC card?
A Network Interface Card or controller is hardware component that connects a computer to a computer
network. Each NIC card will be having MAC (Media Access Controller) address to avoid conflicts between same
NIC adapters. In Linux these NIC adapter is represented by the word "eth" . For example if two NIC cards are
there in a system then it will be denoted as "eho","eth1", .....etc.,
5. What is media?
Media is nothing but cable to connect two or systems. Example : RJ 45, CAT 5 and CAT 6, ....etc.,
6. What is topology?
Topology is a design in which the computers in network will be connected to each other. Example for topologies
are Bus, Ring, Star, Mesh, Tree topologies.
7. What is protocol?
A Network Protocol defines rules and conventions for communication between the network devices. Protocols
are generally use packet switching techniques to send and receive messages in the form of packets.
Example for protocols are TCP/IP (Transmission Control Protocol and Internet Protocol), UPD (User
Datagram Protocol) and HTTP (Hyper Text Transfer Protocol), ....etc.,
8. What are the differences between TCP/IP and UDP protocols?
TCP/IP UDP
Transmission Control Protocol User Datagram Protocol
It is connection oriented It is connection less
Reliable Non-Reliable
TCP Acknowledgement will be sent / received No Acknowledgement
Slow communication Fast communication
Protocol No. for TCP is 6 Protocol No. for UDP is 17
HTTP, FTP, SMTP, ....etc., uses TCP DNS, DHCP, ....etc., uses UDP
RatnakarPage 39
[Pick the date] [LINUX NOTES FOR LEVEL 2]
9. What is an IP address?
Every Computer will be assigned an IP address to identify each one to communicate in the network. The IP
address sub components are Classes of an IP address, Subnet masks and Gateway.
Classes of IP address :
The IP addresses are further divided into classes. The classes are A, B, C, D, E and the ranges are given below.
Class Start End Default Subnet mask Classless Inter Domain Routing
Class A 0.0.0.0 127.255.255.255 255.0.0.0 /8
Class B 128.0.0.0 191.255.255.255 255.255.0.0 /16
Class C 192.0.0.0 223.255.255.255 255.255.255.0 /24
Class D 224.0.0.0 239.255.255.255
Class E 240.0.0.0 255.255.255.255
RatnakarPage 40
[Pick the date] [LINUX NOTES FOR LEVEL 2]
It is two types.
IPV4 :(It is divided into 4 parts )
It is divided into 6 parts. --- . --- . --- . --- (each 8 bits. So, 8 X 4 = 32 bits
--- : --- : --- : --- : --- : --- (each 8 bits. So, 8 X 6 = 48 bits IPV6 : ( It is divided into 16 parts )
--- . --- . --- . --- . --- . --- . --- . --- . --- . --- . --- . --- . ---
. --- . --- . --- (each 8 bits. So, 8 X 16 = 128 bits.
ifconfig (to see the MAC address) # ifconfig (to see the IP address)
16. How many types of NIC cards available?
(a) eth0 (1st NIC card)
(b) eth1 (2nd NIC card)
(c) br0 (Bridge -----> used for communication from physical to virtual)
(d) lo (loopback device name and IP address is 127.0.0.1)
# ifconfig (to see all the NIC devices connected to the system)
17. How many types of cable connections available?
(i) Cross cable (to connect two systems directly)
(ii) Straight cable (to connect more systems with the help of switch)
# ethtool <device name> (to check the network cable is connected or not)
# miitool <device name> (It is also used to check the network cable but it will not supports RHEL - 7
and only supports RHEL - 6 and it also works on physical system only not on virtual system)
18. In how many ways we can configure the network?
There are two ways to configure the network.
(a) Static Network.
(b) Dynamic Network.
Static Network :
In this way we assign the IP address and hostname manually. Once we configure the IP address, it will not
change.
Dynamic Network :
In this way we assign the IP address and hostname dynamically. This means the IP address will change at every
boot.
19. How to assign the static IP address to the NIC card?
In RHEL - 6 :
# setup
(Move the cursor to Network configuration and press Enter key)
(Move the cursor to Device configuration and press Enter key)
(Select the NIC adapter ie., eth0 and press Enter key)
(Assign the above IP address and other details as per our requirements and move the cursor to "OK" and press
Enter key)
(Move the cursor to "Save" to save the changes in device configuration and press Enter key)
(Once again move the cursor to "Save & Quit" button and press Enter key)
(Finally move the cursor to "Quit" button and press Enter key to quit the utility)
(Then restart the network service and check for the IP address by # service network restart command)
RatnakarPage 41
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(If the change is not reflected with the above service, then restart the network manager by
# service NetworkManager restart command)
# ifconfig (to see the IP address of the NIC card)
# ping < IP address > (to check whether the IP is pinging or not)
In RHEL - 7 :
# nmcli connection show (to see all the network connections)
# nmcli device show (to see the network details if already configured manually or dynamically)
# nmcli connection add con-name "System eth0" ifname eth0 type ethernet (to add the network connection)
# nmcli connection modify "System eth0" ipv4.addresses ' < IP address >/< netmask >< gateway > '
ipv4.dns < dns server IP address > ipv4.dns-search < domain name> ipv4.method <static or manually>
(to assign IP address, gateway, dns, domain name and configure the network as static or manually)
# nmcli connection up "System eth0" (to up the connection)
# systemctl restart network (to restart the network service)
# systemctl enable network (to enable the network service)
# ifconfig (to see the IP address of the NIC card)
# ping < IP address > (to check whether the IP is pinging or not)
20. What are the differences between RHEL - 6 and RHEL - 7 network configuration files?
RHEL - 6 RHEL - 7
/etc/sysconfig/network-scripts is the directory /etc/sysconfig/network-scripts is the directory
which contains the NIC configuration information. which contains the NIC configuration information.
/etc/sysconfig/network-scripts/ifcfg-<device name> /etc/sysconfig/network-scripts/ifcfg-<device name>
is the file which contains the NIC configuration details. is the file which contains the NIC configuration details.
/etc/resolve.conf is the file which contains DNS /etc/resolve.conf is the file which contains DNS
server IP and domain name location. server IP and domain name location.
/etc/sysconfig/network is the hostname
/etc/hostname is the hostname configuration file.
configuration file.
/etc/hosts is the file which contains the local DNS /etc/hosts is the file which contains the local DNS
server IP address. server IP address.
21. What are the differences between Dynamic and Static configuration information?
Dynamic configuration information Static configuration information
Device =<NIC device name> Device =<NIC device name>
HWADDR=02:8a:a6:30:45 HWADDR=02:8a:a6:30:45
Bootproto=DHCP Bootproto=none (means static network)
Onboot=yes (yes means whenever we restart the
system this connection will be activated and no
Onboot=yes
means whenever we restart the system the
connection will be deactivated)
Type=Ethernet Type=Ethernet
Userctl=yes/no ----> If it is yes all normal users can Userctl=yes/no ----> If it is yes all normal users can
disable the NIC card and If it is no except root user disable the NIC card and If it is no except root user
RatnakarPage 42
[Pick the date] [LINUX NOTES FOR LEVEL 2]
nobody can disable the NIC card. nobody can disable the NIC card.
RHEL - 7 :
# hostname <fully qualified domain name> (to set the hostname temporarily)
# hostnamectl set-hostname <fully qualified domain name> (to set the hostname permanently)
# systemctl restart network (to update the hostname in the network)
# systemctl enable network (to enable the connection at next reboot)
23. How to troubleshoot if the NIC is notworking?
(a) First check the NIC card is present or not by # ifconfig command.
(b) If present thencheck the status of the NIC card is enabled or disabledby click on System menu on the status
bar, then select Network Connections menu.
(c) Click on IPV4 settings tab, select the device eth0 or any other and select Enable button, then Apply and OK.
(d)Open /etc/sysconfig/network-scripts/ifcfg-eth0 file check Userctl=yes or no. If it is yes make it as no, then
check Onboot= yes or no. If it is no make it as yes and save that file.
(e) If not present thencheck the status of the NIC card is enabled or disabled by click on System menu on the
status bar, then select Network Connections menu.
(f) Click on IPV4 settings tab, select the device eth0 or any other and select Enable button, then Apply and OK.
(g) Using # setup (in RHEL - 6) or # nmcli (in RHEL - 7) commands assign the IP address to the system and
restart the network service by # service network restart (in RHEL - 6) or # systemctl restart network (in
RHEL - 7) commands and enable the service at next reboot by # chkconfig network on (in RHEL - 6) or
# systemctl enable network (in RHEL - 7) commands.
(h) Then up the connection by # ifconfig eth0 up (in RHEL - 6) or # nmcli connection up <connection name>
commands.
(i) Even though it is not working may be the fault in NIC card. If so, contact the hardware vendor by taking the
permissions from higher authorities.
24. What is bonding and how to configure bonding? (from RHEL - 6)
What is link aggregation or bridging or teaming and how to configure teaming? (from RHEL - 7)
Bonding or Teaming or Bridging:
Collection of multiple NIC cards and make them as single connection (virtual) NIC card is called bonding.
It is nothing but backup of NIC cards.
In RHEL - 6 it is called as Bonding or Bridging.
In RHEL - 7 it is called as Teaming or Link aggregation.
There are 3 types of backup in Bonding or Teaming.
RatnakarPage 43
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 44
[Pick the date] [LINUX NOTES FOR LEVEL 2]
MASTER=bond0
SLAVE=yes (Save and exit this file)
(iii) vim /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes (Save and exit this file)
(iv) To add virtual NIC cards eth1 and eth2 :
# setup -----> Networking -----> Device configuration -----> New Device -----> eth1
Name : eth1
Device : eth1 (save and exit this setup)
# setup -----> Networking -----> Device configuration -----> New Device -----> eth2
Name : eth2
Device : eth2 (save and exit this setup)
(v) Adding bond0 connection :
# setup -----> Networking -----> Device configuration -----> New Device -----> bond0
Name : bond0
Device : bond0
IP address : <IP address>
Netmask : 255.255.255.0
Default gateway : <gateway IP address> (save and exit this setup)
# ifdown bond0
# ifdown eth1
# ifdown eth2
# ifup bond0
# service NetworkManager stop
# service network restart
# chkconfig network on
# service NetworkManager restart
# cat /proc/net/bonding/bond0 (to check the bonding information)
# watch -n 1 cat /proc/net/bonding/bond0 (to check the bonding information for every 1 minute)
# echo "eth1" > /sys/devices/virtual/net/bond0/bonding/active_slave (to put the eth1 NIC in active state)
Teaming configuration :
(i) Add the team0 connection by
# nmcli connection add con-name team0 ifname team0 type team
config ' { "runner" : { "name" : "roundrobbin" or "activebackup" or "broadcasting" }} '
(ii) Add the two NIC cards one by one to the above created connection by
# nmcli connection add con-name port1 ifname eth1 type team-slave master team0
# nmcli connection add con-name port2 ifname eth2 type team-slave master team0
RatnakarPage 45
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 46
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 47
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 48
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 49
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# service --status-all (to see the list of all the processes which are currently running)
# ls /etc/init.d (is the location of all the services and deamons in RHEL - 6)
# ls /usr/lib/systemd/system (is the location of all the services and deamons in RHEL - 7)
# /etc/rc.local (is the last script to be run when the system is booting)
(If we enter as sshd stop at the last line of the script file then sshd will be stopped even though that
sshd is enabled)
# service sshd status (to check the sshd status)
# service --service -all (to see the process ID of all the services)
# netstat -ntulp (to see all the services with port no., status, process ID and all open
ports in local system, routing table and NIC device information)
-n -----> port no. (numeric no) -t ----->tcp protocol
-u -----> upd protocol -l -----> port is listening or not
-p -----> display the process ID
# netstat -r (to see all routing table information)
# netstat -i (to see all the NIC cards information)
# nmap (to see the network mapping ie., open ports list on remote system)
Note : By default this command will not available. So, first install the nmap package by # you install nmap -y
# nmap <remote system IP address> (to see all the services which are running in the specified remote system)
# nmap <remote IP 1><remote IP 2><remote IP 3> (to see the running services on specified remote systems)
# nmap 172.25.0.11 - 50 (to see the running service on 172.25.0.11 to 172.25.0.50 systems)
# nmap -p 80 <remote IP> (to see the http port is running or not on specified remote system)
# nmap -p 80 - 90 <remote IP> (to see port no's 80 to 90 are running or not on remote systems)
# nmap -sp 172.25.0.0/24 (to see all the systems which are in upstate ie., 172.25.0.1, 172.25.0.2,
(where s -- scan & p -- ping) 172.25.0.3, ......upto 172.25.0.254 systems)
Open a file, write all the systems IP addresses, save & exit the file. Example has given below,
# vim coss
172.25.2.50
172.25.3.50
172.25.4.50 ....etc., (save and exit this file)
# nmap -iL coss (to scan all the IP addresses by reading the coss file)(where -i ----> input, -L ----> list)
# nmap --iflist (to see all the routing table information in the network)
# nmap 172.25.0.10 - 20 --exclude 172.25.0.15 (to scan all the systems from 172.25.0.10 to 172.25.0.20
systems and excluding 172.25.0.15 system)
# nmcli connection show --active (to control the network connections)
# ip link (to check the network connection)
# ping -I eth1 <IP address> (to check the 2nd NIC card connection)
RatnakarPage 50
[Pick the date] [LINUX NOTES FOR LEVEL 2]
5. Managing SELinux
1. What is SELinux?
It is a one type of security that enhances the security that allows users and administrators more control over
which users and applications can access which resources, such as files, Standard Linux access controls etc.,
RatnakarPage 51
[Pick the date] [LINUX NOTES FOR LEVEL 2]
It is mainly used to protect internal data (not from external data) from system services. In real time SELinux is
disabled and instead of this IP tables are used. It protects all the services, files and directories by default if
SELinux is enabled.
2. In how many ways we can implement the SELinux? Explain them.
We can implement the SELinux mainly in 2 modes.
(i) Enabled
(ii) Disabled (default mode)
Enabled :
Enabled means enabling the SELinux policy and this mode of SELinux is divided into two parts.
(a) Enforcing
(b) Permissive
Disabled :
Disabled means disabling the SELinux policy.
3. What is Enforcing mode in SELinux?
Enforcing means SELinux is on. It checks SELinux policy and stored a log. No can access the services by default
but we can change the policy whenever we needed.
4. What is Permissive mode in SELinux?
SELinux is on and it don't check SELinux policy and stored the log. Everybody can access the services by default
and we can also change the SELinux policy. It is also called as debugging mode or troubleshooting mode. In this
mode SELinux policies and rules are applied to subjects and objects but actions are not affected.
5. What is Disabled mode in SELinux?
SELinux is turned off and no warning and log messages will be generated and stored.
6. What are Booleans?
Booleans are variables that can either be set as true or false. Booleans enhance the effect of SELinux policies
implemented by the System Administrators. A policy may protects certain deamons or services by applying
various access control rules.
7. What is SELinux policy?
The SELinux policy is the set of rules that guide the SELinux security engine. It defines types for file objects and
domains for process. It uses roles to limit the domains that can be entered and the user identities to specify the
role that can be attained.
8. What are the required files for SELinux?
# vim /etc/selinux/config -----> It is main file for SELinux.
# vim /etc/sysconfig/selinux -----> It is a link file to the above file.
# vim /var/log/audit/audit.log -----> SELinux log messages will be stored in this file.
9. what is the command to see the SELinux mode?
# getenforce (to check the SELinux mode)
10. What is command to set the SELinux mode temporarily?
# setenforce 0 or 1 (to set the SELinux mode. Where ' 0 ' -----> permissive and ' 1 ' -----> Enforcing)
Note : (i) To change the SELinux mode from Permissive to Enforcing or Enforcing to Permissive modes the
system restart is not required.
RatnakarPage 52
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(ii) To change Enforcing mode to Disabled mode or Disabled mode to Enforcing mode the system
restart is required.
(iii) The above commands are changed the SELinux mode temporarily only. To make the selinux changes
permanently then open /etc/selinux/config and go to ,
SELINUX=Enforcing or Permissive or Disabled (save and exit this file)
11. What is command to see the SELinux policy details?
# sestatus (to see the SELinux policy details)
Other useful commands :
# ls -Z <file name> (to see the SELinux context of the file)
# ls -ldZ <directory name> (to see the SELinux context of the directory)
# ps -efZ | grep <process name> (to see the SELinux context of the process running on the system)
# ps -efZ | grep http (to see the SELinux context of the http process running on the system)
# chcon -t <argument> <file/directory name> (to change SELinux context of the file or directory)
# chcon -t public_content_t /public (to change the SELinux context of the /public directory)
# chcon -R public_content_t /public (to change the SELinux context of the /public directory and
its
contents)
# restorecon -v <file/directory name> (to restore the previous SELinux context of the
file/directory)
# restorecon -v /public (to restore the previous SELinux context of that directory)
# restorecon -Rv <directory> (to restore the previous SELinux context of the directory and
its contents)
# restorecon -Rv /public (to restore the previous SELinux context of the /public
directory and its contents)
# getsebool -a | grep <service name> (to see the booleans of the specified service)
# getsebool -a | grep ftp (to see the booleans of the ftp service)
# setsebool <boolean><option on/off> (to change the boolean of a specified service)
# setsebool allow_ftpd_anon_write on (to change the boolean of the ftpd service temporarily)
# setsebool -P <service name> = <0/1> (to change the boolean for the service on or off permanently)
# setsebool -P samba_export_all_rw = 1 (to change the boolean for samba service permanently on)
RatnakarPage 53
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 54
[Pick the date] [LINUX NOTES FOR LEVEL 2]
root the file system is mounted. It also contains necessary drivers compiled inside which helps it to access the
hard drive partitions and other hardware.
init level :
In this init program reads the /etc/inittab file and put the system into specified run level. init identifies the
default run level from /etc/inittab file and we can change the this default run level whenever we needed. We
can find the default run level by # grep "initdefault" /etc/inittab command on our system. Normally the
default run level in Linux is 3 in CLI (Command Line Interface) mode and 5 in GUI (Graphical User Interface)
mode.
Run Level Programs :
The following run levels are available in Linux systems.
● 0 -----> halt or shutdown the system
● 1 -----> Single user mode
● 2 -----> Multi user without NFS
● 3 -----> Full multi user mode but no GUI and only CLI mode
● 4 -----> Unused
● 5 -----> Full multi user mode with GUI (X11 system)
● 6 -----> reboot the system
Whenever we start the Linux system is booting we can see various services getting started. Those services are
located in different run levels programs executed from the run level directory as defined by our default run
level. Depending on our default init level setting, the system will execute the programs from one of the
following directories.
● Run level 0 -----> /etc/rc.d/rc0.d
● Run level 1 -----> /etc/rc.d/rc1.d
● Run level 2 -----> /etc/rc.d/rc2.d
● Run level 3 -----> /etc/rc.d/rc3.d
● Run level 4 -----> /etc/rc.d/rc4.d
● Run level 5 -----> /etc/rc.d/rc5.d
● Run level 6 -----> /etc/rc.d/rc6.d
The above directories are also having symbolic links available for those directories under /etc/rc0.d,
/etc/rc1.d, ....etc., So, the /etc/rc0.d is linked to /etc/rc.d/rc0.d
Booting procedure in RHEL - 7:
Upto kernel the booting process is same as the above. /boot/grub2/grub.conf is the GRUB configuration file
in RHEL - 7. systemd is the initial process in RHEL - 7 and its process ID is 1.
linux16 read the root ( / ) file system and then initrd16process will mount the root ( / ) file system in read &
write mode and starts the systemdprocess. And the systemd process will read the /etc/fstab file and
mount all the file systems. Then it reads the file /etc/systemd/system/default.target file and brings the
system into the default run level according to the scripts the processes will start or stop.
2. How to check the current run level of the system?
# who -r (to see the present run level of the system)
3. How to change the default run level?
RatnakarPage 55
[Pick the date] [LINUX NOTES FOR LEVEL 2]
First open the /etc/inittab file by # vim /etc/inittab command and go to last line change the run level
number as we required and then reboot the system by # init 6 command. After rebooting the system check
the current run level by # who -r command.
4. How to start the graphical interface if the system is in run level 3 now?
# startx (it changes the run level 3 to 5 and reboots the system)
5. How to troubleshoot if the boot disk is not available?
(i) First check the hard disk is present in the system or not. If not present connect the hard disk and restart the
system.
(ii) If the hard disk is present, then go to BIOS and find the location of the hard disk.
(iii) Check the boot priority in the BIOS. If boot priority is not the hard disk then change it to hard disk and
restart the system.
(iv) Even though the system is not started then boot the system with CDROM in single user mode and open the
/boot/grub/grub.conf file and see the hard disk name and partition number. Normally it should be
/dev/hda1 (if the hard disk is IDE hard disk) or /dev/sda1 (if the hard disk is SATA or SCSI). If the hard
disk name and partition number is different instead of the original then change them and reboot the system
with hard disk.
(v)If the GRUB is corrupted then reboot the system with CDROM in single user mode and restore the grub
information from the recent backup and then restart the system with hard disk.
6. How to reboot the production server?
(i) In general the production servers will not be rebooted frequently because the end users will suffer if the
productions server are in down state. If any changes made to the system like grub, selinux policy, default run
level is changed and if kernel patches are applied the system reboot is required.
(ii) If any inconsistency is root ( / ) file system, then take the business approval from higher authorities,make a
plan for proper scheduleand also inform to the different teams like application team to stop the application,
databaseteam to stop the databases, QC team to stop the testing, monitoring people to ignore the alerts
from thisserver and other teams if any and then reboot the system withCDROM in single user mode and
then run #fsck command on that file system.
(iii) If O/S disk is corrupted or damaged then, reboot the system temporarily with the mirror disk then fix that
problem and again boot the system with original disk.
7. What is the difference between # reboot and # init 6 commands?
Both commands are used to restart or reboot the system.
# reboot command will not send the kill signals to the system and it will kill all the running processes and
services forcefully and then restart the system.
# init 6 command will send the kill signals to the system and it will stop all the processes and services one by
one and then restart the system.
8. What is console port and how to connect to the console port?
Console port is used to connect the system even though the system is not booted with the main O/S. This port
is used to connect the system for troubleshooting purpose only. We can connect the console port as same as
connect to systems LAN port and it is also having IP address, user name and password to connect to the
console.
There are different types of console ports for different types of servers. They are given below.
RatnakarPage 56
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 57
[Pick the date] [LINUX NOTES FOR LEVEL 2]
We can login to the system remotely in single user mode also but it is possible to connect to console instead of
LAN port through putty tool by giving IP address, user name and password. Then console port appears and boot
the system with CDROM in single user mode.
14. How to check the present kernel version?
# uname -r (it displays the present kernel version)
# uname -a (it displays the present kernel version with other details)
# cat /boot/grub/grub.conf (in this file also we can find the kernel version)
15. What is the command to see the system architecture?
# arch or # uname -m (both commands gives the architecture of the system)
16. How to check the version of the O/S ?
# cat /etc/redhat-release (gives the version of the O/S)
17. How to repair the corrupted boot loader and recover it?
This problems may be occur if the GRUB is corrupted. So, we have to recover the GRUB. Basically the repairing
of GRUB means installing the new grub on the existing one from RHEL - 6 DVD. The steps are given below.
(i) Insert the RHEL - 6 DVD and make sure that system should boot from CD/DVD.
(ii) Boot the system in Rescue Installed System mode.
(iii) Select the language with which we want to continue and click on OK.
(iv) Select the Keyboard type as US and click OK.
(v) Select Local CD/DVD and click OK.
(vi) Move the cursor to NO to ignore the Networking.
(vii) Move the cursor to Continue tab to mount the root ( / ) from CD/DVD and press Enter key.
(viii) Now the root ( / ) file system is mounted on /mnt/sysimage, here click on OK and Press Enter to continue.
(ix) Select the "shell Start shell" option and click on OK, then shell will be displayed on screen.
(xi) At shell prompt type as # chroot /mnt/sysimage command, press Enter.
(xii) Check the /boot partition by # fdisk -l command.
(xiii) Install the new grub on the boot device ie., may be /dev/sda2 by # grub-install <device name>
command (For example # grub-install /dev/sda2).
(xiv) If it show no error reported that means we have successfully recovered the grub.
(xv) Then type # exit command and again type # exit or # reboot command to reboot the system.
18. What are Modules or Kernel Modules? How to find the Kernel Modules?
The drivers is Linux system are known as Modules or Kernel Modules. These modules are assigned by kernel
depending on the hardware. Hardware can only be communicated and can work efficiently when the proper
module is loaded in the kernel. we can find the kernel modules by # ls /etc/lib/modules command.
All the kernel modules in the system will be ended with " .ko " extension. So, we can see all the modules in the
system by # find / -name *.ko command.
19. What other commands related to kernel modules?
# lsmod (to list all the currently loaded modules)
# lsmod |grep -i <module name> (to check whether the particular module is loaded or not)
# lsmod |grep -i fat (to check the fat module is loaded or not)
There might be a situation where our module is not working properly, in that case we have to remove that
module and re-install it again by,
RatnakarPage 58
[Pick the date] [LINUX NOTES FOR LEVEL 2]
blocklist usb_storage (after type this save and exit this file)
22. What is " wait " and where it is stored?
(i) If there is not enough memory to run the process, then it will wait for free space in memory. That process is
called wait.
(ii) wait is stored in buffer like cache memory.
23. What is run level?
(i) Run level is nothing but to put the system in different levels to perform different maintenance modes.
(ii) There are 7 run levels. Those are 0, 1, 2, 3, 4, 5 and 6.
(iii) The above levels are used to put the system in different stages to avail different services.
24. What is the default run level?
(i) When we boot the server the system automatically go to one particular run level. That run level is called the
default run level.
(ii) In Linux the default run level is 5 in GUI and 3 in CLI.
(iii) We can modify the default run level by put an entry in /etc/inittab file.
25. Which run level are you using?
Run level 3.
RatnakarPage 59
[Pick the date] [LINUX NOTES FOR LEVEL 2]
7. Job Automation
RatnakarPage 60
[Pick the date] [LINUX NOTES FOR LEVEL 2]
at job :
(i) at jobs are executes only once.
(ii) Here also we cannot get the information if the job is failed and it is also do not execute the failed jobs
automatically.
4. What are the important files related to cron and at jobs?
● /etc/crontab -----> is the file which stores all the scheduled jobs.
● /etc/cron.deny -----> is the file used to restrict the users from using cron jobs.
● /etc/cron.allow -----> is used to allow only users whose names are mentioned in this file to use cron jobs
and this file does not exist by default.
● /etc/at.deny ----->same as cron.deny for restricting the users to use at jobs.
● /etc/at.allow -----> same as cron.allow for allowing users to use at jobs.
Options Explanation
* Is treated as a wild card. Meaning any possible value.
Is treated as ever 5 minutes, hours, days or months. Replacing he 5 with any numerical value
*/ 5
will change this option.
2, 4, 6 Treated as an OR, so if placed in the hours, this could mean at 2, 4 or 6 o-clock
Treats for any value between 9 and 17. So if placed in day of the month this would be days
9-17
9 through 17 or if put in hours, it would be between 9 AM and 5 PM.
(ii) Put the entries of the user names whom do we (ii) Put the entries of the user names whom do we
want to allow the cron jobs. want to deny the cron jobs.
(ii) Put the entries of the user names whom do we (ii) Put the entries of the user names whom do we
want to allow the at jobs. want to deny the at jobs.
RatnakarPage 62
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 63
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# at noon + 4days (to schedule the at job today and after 4 days)
# at midnight (to schedule the at job today midnight)
# at midnight + 4days (to schedule the at job today midnight and after 4 days)
# vim /etc/at.deny (to deny the at jobs for specified users)
# vim /etc/at.allow (to allow the at jobs for specified users)
* If both /etc/at.deny and /etc/at.allow files are deleted, except root user every user will be deny to
execute at jobs.
* Once scheduled the cron jobs, we can modify, edit that job any no. of times.
# cat /etc/crontab (to see the cron jobs list)
# crontab -lu <user name> (to list all the cron jobs of the specified user)
# crontab -eu <user name> (to create or edit the cron jobs)
# crontab -ru <user name> (to erase or remove the specified user's cron jobs)
# crontab -r <job id> (to remove the specified cron jobs)
# vim /etc/cron.deny (to deny the cron jobs for specified users)
# vim /etc/cron.allow (to allow the cron jobs for specified users)
* If both files are remove or deleted, except root user all the users are deny to execute the cronjobs.
# crontab -eu raju
55 14 20 1 2 /usr/sbin/useradd gopal; usr/sbin/groupadd team
(save & exit this crontab)
* This job executes the useradd and groupadd commands on Tuesday 20th Jan every year
Examples for crontab :
(i) 58 14,15 20-25 1 2,3,6 /usr/sbin/passwd
where 58 -----> 58 minutes
14,15 -----> 14 hours and 15 hours ( 14:58 and 15:58)
20-25 -----> dates 20, 21, 22. 23, 24 and 25
1 -----> January
2, 3, 6 -----> 2nd day, 3rd day and 6th day
(ii) 58 15 * * * <command>
where 58 -----> 58 minutes
15 -----> 15 hours (at 15:58)
* * * -----> every day
RatnakarPage 64
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(viii) @reboot /usr/sbin/ or /bin/sh /root/coss.sh (every reboot the specified script file will be
executed)
* If the system is scheduled for a job, but at that time the system is under down then anacron command is
responsible for those pending jobs to be executed.
# cat /etc/anacron is the configuration file for anacron jobs.
# anacron (anacron is used to execute the pending cron jobs)
# vim /etc/rc.local (to execute the cron pending jobs automatically whenever the system is rebooted)
* Open the above file and go to last line and type as, anacron then save and exit this file to execute the
pending jobs automatically whenever the system is rebooted.
RatnakarPage 65
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(iii) These datacenters are normally located in US, UK and Australia ... etc.,
(iv) Generally we login as normal user in local systems and get the remote desktop or console using remote
desktop tools like putty, VNC server, ... etc.,
(v) If it is through remote desktop, we can manage the servers using the GUI tools.
(vi) If it is through putty, we can manage the serves using command line interface only. In both ways we should
give server name or IP address, port no., user name and password.
2. What is SSH and explain it?
SSH is stands for Secure Shell. It was designed and created to provide the best security when accessing another
computer remotely. Not only does it encrypt the session, it also provides better authentication facilities.
On windows systems install the putty software and through putty we can access the remote system by
configuring ssh.
SSh is protocol which facilitates secured communication between two systems using Client-Server architecture
and allows users to login to the server host systems remotely.
It is used to connect to remote system and perform administrative task or jobs. By default ssh takes password
authentication mechanism and its port no. is 22. Through ssh the data will be transferred in encrypted format.
3. What is telnet?
Telnet is a mechanism to connect and to administrate the remote system from local system. This is the oldest
program which is available on most network capable operating systems. Accessing a remote shell account
through the telnet method is danger because in that everything that you send or receive over that telnet
session is visible in plain text on your local network and the local network of the machine you are connecting
to.
So, anyone can sniff the connection in-between can see our user name, password, email and other messages
that we read and command that we run. For these reasons we need a more sophisticated program than telnet
to connect to a remote host.
4. What are the differences between Telnet and SSH?
Telnet SSH
(a) Through telnet we can connect the remote (a) Through ssh also we can connect the remote
system, but any network hacker may see the system, but nobody can see the transferred data.
transferred data. And the telnet port no. is 23. And the ssh port no. is 22.
(b) Data will be transferred in non-encrypted format. (b) Data will be transferred in encrypted format.
(c) We cannot trust this telnet connection. (c) We can trust this ssh connection.
(d) We cannot give the trusting in telnet. (d) We can give the trusting in ssh.
(e) By snooping or sniffing technologies we can see (e) By snooping or sniffing technologies we cannot
the data like system or hostname, login name, see the data like system name or hostname, login
password and other data. name, password and other data.
So, there is no security. So, there is a security
(f) # telnet<IP address of the remote system> (f) # ssh<IP address of the remote system>
(provide login name and password) (provide login name and password)
5. In how many ways we can connect the remote host through ssh?
Through ssh we can connect the remote host by two methods.
RatnakarPage 66
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 67
[Pick the date] [LINUX NOTES FOR LEVEL 2]
and uncomment that line and type as " no " in place of " yes " andsave and exit this file.
(iii) Then restart the or reload the sshd deamon by
# service sshd restart (to restart the sshd deamon or service in RHEL - 6)
# systemctl restart sshd (to restart the sshd deamon or service in RHEL - 7)
# chkconfig sshd on (to enable the sshd deamon at next reboot in RHEL - 6)
# systemctl enable sshd (to enable the sshd deamon at next reboot in RHEL - 7)
# service sshd reload (to reload the sshd deamon in RHEL - 6)
# systemctl reload sshd (to reload the sshd deamon in RHEL - 7)
(iv) Then no root user cannot access our system remotely through ssh service.
11. How to allow the remote users to run GUI commands through ssh?
(i) Open ssh configuration file by # vim /etc/ssh/sshd_config
-----> go to line no. 109 in RHEL - 6 or
-----> go to line no. 117 in RHEL - 7 X11 Forwarding no
type as " yes " in place of " no " then save and exit this file.
* If it is yes, then GUI commands can be executed on the remote system.
* If it is no, then GUI commands cannot be executed on the remote system.
(ii) Then restart the sshd service or deamon to effect the above modification by
# service sshd restart (to restart the sshd deamon or service in RHEL - 6)
# systemctl restart sshd (to restart the sshd deamon or service in RHEL - 7)
# chkconfig sshd on (to enable the sshd deamon at next reboot in RHEL - 6)
# systemctl enable sshd (to enable the sshd deamon at next reboot in RHEL - 7)
# service sshd reload (to reload the sshd deamon in RHEL - 6)
# systemctl reload sshd (to reload the sshd deamon in RHEL - 7)
(iii) # gedit (to open the gedit editor on remotely)
12. How to allow empty password through ssh?
(i) Open the ssh configuration file by # vim /etc/ssh/sshd_config
-----> go to line no. 65 in RHEL - 6 or
-----> go to line no. 77 in RHEL - 7 PermitEmptyPassword no
type as " yes " in place of " no " then save and exit this file.
* If it is yes, then the remote system will be allow the users with empty password ie., without password.
* If it is no, then the remote system will not be allow the users with empty passwords.
(ii) Then restart the sshd service or deamon to effect the above modifications by
# service sshd restart (to restart the sshd deamon or service in RHEL - 6)
# systemctl restart sshd (to restart the sshd deamon or service in RHEL - 7)
# chkconfig sshd on (to enable the sshd deamon at next reboot in RHEL - 6)
# systemctl enable sshd (to enable the sshd deamon at next reboot in RHEL - 7)
# service sshd reload (to reload the sshd deamon in RHEL - 6)
# systemctl reload sshd (to reload the sshd deamon in RHEL - 7)
(iii) Now, the users who are having empty passwords are also access the remote systems through ssh.
13. How to prevent the password authentication mechanism in ssh?
(i) Open the ssh configuration file by # vim /etc/ssh/sshd_config
RatnakarPage 68
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 69
[Pick the date] [LINUX NOTES FOR LEVEL 2]
sshd: <IP address 1><IP address 2><IP address 3> ...etc., (to deny IP 1, IP 2, IP 3, ...etc.,)
sshd: <hostname 1><hostname 2><hostname 3> ...etc.,
sshd: *.example.com *.my133t.org ...etc., (to deny all the hosts from these domains)
sshd: 192.168.0. 172.25.0. ...etc., (to deny 192.168.0 and 172.25.0 networks)
sshd: ALL Except <hostname or IP address> (to deny all the hosts or IP addresses except the specified
one in that network) and save & exit the file.
(ii) Then restart the sshd service or deamon to effect the above modifications by
# service sshd restart (to restart the sshd deamon or service in RHEL - 6)
# systemctl restart sshd (to restart the sshd deamon or service in RHEL - 7)
# chkconfig sshd on (to enable the sshd deamon at next reboot in RHEL - 6)
# systemctl enable sshd (to enable the sshd deamon at next reboot in RHEL - 7)
# service sshd reload (to reload the sshd deamon in RHEL - 6)
# systemctl reload sshd (to reload the sshd deamon in RHEL - 7)
To allow IP addresses or hostnames :
(i) Open /etc/hosts.allow file by # vim /etc/hosts.allow and go to last line and type as,
sshd: <IP address 1><IP address 2><IP address 3> ...etc., (to allow IP 1, IP 2, IP 3, ...etc.,)
sshd: <hostname 1><hostname 2><hostname 3> ...etc.,
sshd: *.example.com *.my133t.org ...etc., (to allow all the hosts from these domains)
sshd: 192.168.0. 172.25.0. ...etc., (to allow 192.168.0 and 172.25.0 networks)
sshd: ALL Except <hostname or IP address> (to allow all the hosts or IP addresses except the specified
one in that network) and save & exit the file.
(ii) Then restart the sshd service or deamon to effect the above modifications by
# service sshd restart (to restart the sshd deamon or service in RHEL - 6)
# systemctl restart sshd (to restart the sshd deamon or service in RHEL - 7)
# chkconfig sshd on (to enable the sshd deamon at next reboot in RHEL - 6)
# systemctl enable sshd (to enable the sshd deamon at next reboot in RHEL - 7)
# service sshd reload (to reload the sshd deamon in RHEL - 6)
# systemctl reload sshd (to reload the sshd deamon in RHEL - 7)
17. How to check whether the ssh is running or not on remote host?
# nmap -p 22 <IP address of the remote host> (to see the ssh is running or not on remote system)
18. How to troubleshoot if the client has complain that I am not accessing the server using ssh?
(i) First check the pinging of the client system. If it is not pinging then check the IP address of the client system.
If client system and sever system are in different domains or networks it will not ping. So, bring the client
system into the network of the server system. Check the network is working or not and also check whether
the network cable is connected or not.
(ii) If both systems are pinging then check whether the openssh package is installed or not. If not installed
then install that package and configure ssh on the client system and restart the sshd deamon.
(iii) Check the client <IP address or hostname> in /etc/hosts.deny files. If there is an entry of the client
system in this file, then remove that entry and restart the sshd deamon.
RatnakarPage 70
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(iv) Finally open the ssh configuration file by # vim /etc/ssh/sshd_config and see any client user name is
present or not and check other lines for client entries in this file, if present remove those entries, save that
file and restart the sshd service.
(v) Finally check whether the client user is there in the server or not, if not create the client user, assign the
password share those details to client. If user is there then check whether the client user's password is
locked, account expired and any other or not, if locked then remove the lock, if client account is expired then
activate that account, assign the password and make the ssh trusting between client and server systems.
19. How to copy the file from our system to remote system?
# scp <source file name with full path><IP address of the remote system>:<destination location>
Example : ssh /root/script1 192.168.1.1:/root/script1 (to copy /root/script1 file into 192.168.1.1 system)
ssh -r /root/raju/ 192.168.1.1:/root/raju/ (to copy /root/raju directory to remote system)
* scp means secured copy to copy the files or directories from local system to remote system.
RatnakarPage 71
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# ssh <IP address> -l <user name> (to connect the remote system using user name)
Password : xxxxxxx
# ssh 192.168.1.1 -l root (to connect this remote system as root user)
# ssh [email protected] (to connect this remote system as root user)
# ssh [email protected] (to connect the server1 system in example.com domain)
#w (to see all the users who are login to our system)
# w -f (to see all the users who are login to our system with other details)
# ssh <IP address> (if we not specified the user name, then it will ask the current users password and
search the current account in remote system)
# cat /root/.ssh/known_hosts (to see the ssh trusting remote hosts finger print information)
# ssh [email protected] <command> (to run a command on remote host without login to that system)
# ssh [email protected] -X (to run GUI commands on the remote system because by default the ssh is
configured as command line interface, X is capital)
# lastb (to see the login failed tries)
# last -x |grep shutdown (to see the date & time of the system's last shutdown)
9. Memory Management (Swap)
1. What is swap?
Swap space in Linux is used when the amount of the Physical memory (RAM) is full. If the system needs more
memory resources and the RAM is full, inactive pages in the memory are moved from RAM to swap space. It
helps the machines which are having small amount RAM and it should not be considered a replacement for
more RAM. Swap is located on the hard disks which have slower access time than Physical memory.
2. What is the recommended swap space?
Generally the recommended swap space is double the RAM size, but the following table shows actual amount.
Apart from the below recommendation a basic rule is applied to create the swap partition.
* If the RAM size is less than or equal to 2 GB, then the size of the swap = 2 X RAM size.
* If the RAM size is more than 2 GB, then the size of the swap = 2 GB + RAM size.
Recommended Amount of Swap
Amount of RAM in the System
Space
4 GB or less Min. 2 GB
4 GB - 16 GB Min. 4 GB
16 GB - 64 GB Min. 8 GB
64 GB - 256 GB Min. 16 GB
256 GB - 512 GB Min. 32 GB
RatnakarPage 72
[Pick the date] [LINUX NOTES FOR LEVEL 2]
If we run or open any application, it requires some amount of memory to load its features. So, first it looks or
occupy physical memory (RAM). If there is not enough space in RAM, the application's data is transferred from
RAM to swap space. If the pages are moving from RAM to swap space, that is called swap-in or page-out.
swap-out or page-in :
If older or previous application is closed, then the space occupied by those applications also cleared. ie., some
of the space is available in RAM. So, automatically some data which is already occupied in swap space is also
moved from swap to RAM. If the pages are moving from swap space to RAM, that is called swap-out or page-
in.
5. How paging space is allocated?
(i) Paging means data transferred from RAM to swap space.
(ii) If we open or run any application, first it will occupy the required space in RAM. If there is not enough
space in RAM, then some amount of application's data will be transferred from RAM to swap space. ie.,
swap space is allocated to that application. This allocation is called paging space or page-out allocation.
(iii) paging will takes place in swap by blocks. First it will create the required no. of blocks in swap space.
(iv) If RAM space cleared by older or other applications, then swap occupied data is transferred from swap to
RAM. This is called page-in. So, that much amount of space is unallocated in swap ie., removed the created
blocks in swap.
6. How to create the swap partition?
# fdisk -l (to see the available disks in the system)
# fdisk /dev/sdb
Command (m for help) : n (to create a new partition)
First cylinder : (press Enter key)
Last cylinder : +2048M
Command (m or help) : t (to change the hex code)
Partition no. (1-2) : 2 (to change the partition number hex code)
Hex code : 82 (82 is the hex code for Linux swap)
Command (m for help) : w (write the changes to the disk)
# partprobe or # partprobe /dev/sdb (to update the partition table information)
# mkswap /dev/sdb2 (to convert the raw disk to swap file system)
# swapon /dev/sdb2 (to turn on the swap partition)
# vim /etc/fstab (to make the permanent mount of swap partition)
/dev/sdb2 swap swap defaults 0 0
(save and exit this file)
# mount -a (to mount all the partitions which are having entries in /etc/fstab file)
# df -hT (will not show the swap size)
# free -m (to see the total RAM and swap size)
7. How to remove the swap partition?
# swapon -s (to see the swap partition names or disks)
# swapoff /dev/sdb2 (to turn off the swap space)
# vim /etc/fstab (open this file and remove the swap partition entry)
(after removing the swap partition save and exit this file)
RatnakarPage 73
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 74
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) We can restore the data from backup by, tar, cpio, dd, net backup or other tools.
(ii) If it is in mirror, we can sync the data from mirrored disk.
(iii) We can upgrade the O/S in two ways.
(a) Online :
The O/S is upgraded from previous to present while the system is running. It is risky and takes long
time.
(b) Offline :
First take backup of all the system and then remove previous O/S and install the present O/S and
restore the backup from backup disks or tapes. So, it is very easy and non-risky job.
1. What is software?
Software is a collection of programs to perform some tasks or manage systems, applications, databases ,...etc.,
2. What is package and package management?
Package is nothing but a software to perform some tasks. Software is the basic of any O/S allowing to install and
use different utilities.
Package management means installing, updating, querying, repairing and removing packages. In Linux there are
two tools to perform package management.
rpm -----> redhat package manager and yum -----> yellowdog updater modifier.
3. What is rpm?
rpm is a package managing system (collection of tools to manage software packages). rpm is a powerful and
most popular open source tool used for software management for installing, uninstalling (removing), verifying,
querying and updating software packages. It is installed under /var/lib/rpm database directory. It deals with
.rpm files, which contains the actual information about the packages. The rpm log messages will be stored in
/var/log/yum.log file.
RatnakarPage 75
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 76
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# rpm -ivh --test <package name> (to check the package consistency)
* If the installation status shows 100%, then the package is in good condition or consistent. But while showing
the hash progress if it shows any error, then the package is in inconsistent state.
# rpm -ivh finger* (to install the finger package)
# rpm -qa finger (to check whether the package is installed or not)
# finger <user name> (to check whether the installed package is working or not)
# rpm -e <package name> (to erase or remove or uninstall the package)
# rpm -evv <package name> (to remove the package in verbose mode)
# rpm --test -ivh (to test the package before installing ie., whether the
package is suitable or not)
# rpm -qi <package name> (to see the details or information on the installed package)
# rpm -ql <package name> (to list all package related files)
# rpm -qlc <package name> (to list all the configuration files of that package)
# rpm -qd <package name> (to list all the document files of that package)
# rpm -ivh <package name> --force (to install the package forcefully)
# rpm -qR <package name> (to list the dependencies of that package)
# rpm -qip <package full name> (to display the package information before installation)
# which <command name> (to display the location of that command)
# rpm -qf <location of the command> (to check the package name for that command)
# rpm -V <package name> (to verify that package, ie., 100% package is there or not, if
any files missed in that package, those are displayed as a
list)
# rpm -ivh <package name> --replacepkgs (to replace the missed files in that package)
# rpm -qp --changelog <package name> (displays all the changed logs like lat time, when the package
is installed, .....etc.,)
# rpm -qp --scripts <package name> (to see the package installation scripts)
# rpm -K <package full name> (to see the package key)
# rpm -Uvh <package name> (to update the package)
* Update is over write the old version of the package. If any problems in new package, we cannot solve those
issues. So, the better one is install that package as a fresh one (not update option).
* Update will look first the package is available in that system or not. If it is available, it will update that
package otherwise it will install as fresh package.
# rpm -qRp <package name> (to check the dependency packages of that package before install)
# rpm -ivh <package name> --nodeps (to install the package without dependent packages)
8. What is yum and explain the yum?
yum stands for yellow dog updater modified. yum is a package management application for computers running
on Linux O/S.yum is a standard method of managing the installation and removal of software. It is from RHEL - 5
onwards. Packages are downloaded from collections called repositories, which may be online, on a network and
or on installation media. yum is a front end tool for rpm. It is used to resolve the dependency which cannot be
done by rpm. The yum command has access the repository where the packages are available and can install,
update/upgrade, remove and query the packages automatically.
RatnakarPage 77
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 78
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 79
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(xiii) Then reboot the system and won't attach the mirror disk to avoid any unexpected situations or problems
and put that server under test upto 1week or 10 days depending on the company's policy.
(xiv) After the test period, if there is no problems raised then attach the system in live mode and also with
mirror disk to sync the data to update the system.
(xv) Then we inform the Application, Database, Monitoring and other teams who are dealing with that server
to test application, database, monitoring and others see the status.
(xvi) Then finally close the issue or CRQ.
17. After installation of package or patch if the package or patch is removed then what will happened?
(i) If kernel patch is removed, then the system will hang and for others there is no effect.
(ii) If package is removed then the application that belongs to that removed package will effect.
18. After applying the patch need to reboot the system or not?
(i) If the patch is kernel patch or clustered patch then only the system reboot is required.
(ii) If the patch is normal patch then there is no need of the reboot required.
19. If the package is not installing. How to troubleshoot?
(i) Check the package pre-requisites to install the package.
(ii) If pre-requisites are not matched with our system, then the package will not be installed i.e., O/S
compatibility to install that package.
(iii) If there is no sufficient space in the system, the package will not be installed.
(iv) If the package is not properly downloaded, then the package will not be installed.
20. If the patch is not applied successfully what will you do?
(i) Check whether the patch is installed properly or not by # rpm -qa <patch name> command.
(ii) Check the /var/log/yum.log file to verify or see why the patch is not successfully installed.
(iii) If any possible to resolved those issues, resolve and remove that patch with # rpm -e <patch name>
command.
(iv) If any reboots required to effect, then reboot the system.
(v) Again add that patch by # rpm -ivh <patch name> command.
(vi) Then check the patch by # rpm -qa <patch name> command
Other useful yum commands :
# yum repoinfo (to list all the information on all the repositories)
# ayum repoinfo <repo id> (to list all the information on specified repository)
# yum install <package name> -y (to download and install the package and y means yes)
# yum install <package name> -d (to download the package)
# yum erase or remove <package name> -y (to remove or uninstall the package and y means yes)
# yum list installed (to display the list of all installed packages)
# yum list available (to list all the available packages to be installed)
# yum list all | less (to list all the installed and not installed packages)
# yum search <package name> (to search a particular package is available or not)
# yum info <package name> (to display the information on that package)
# yum update <package name> (if the update version of the specified package is available,
then update that package)
# yum update all (to update all the packages nothing but whole system will be updated)
RatnakarPage 80
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# yum downgrade <package name>(to revert back ie., go back to previous version of that package if new
version is not working properly)
# yum history (to display the yum history)
# yum history info < id > (to display the information of that history id)
# yum history undo < id > (to remove that history id)
# yum history undo < id > (to redo the above removed history id)
# yum grouplist (to display the list of group packages)
# yum groupinstall <package name> (to install the group package)
# yum install@<group package name> (to install the group package in another way)
# yum groupinfo <group package name> (to display the group package information)
# yum grouplist hidden (to list all the group packages names including installed or
not installed and hidden group packages)
# yum-config-manager disablerepo=<repo id> (to disable the yum repository. So, we cannot install any
RatnakarPage 81
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 82
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Examples:
# tar -cvf /root/etc.tar /etc/* (to copy all the files and directories from /etc and make a single file
and place in the /root/etc.tar file)
# tar -tvf /root/etc/tar (to long listing the contents of the /root/etc.tar file)
# tar -xvf /root/etc.tar -C /root1/ (to extract and copy the files in /root1/ location)
# tar -xf /root/etc.tar (to list the contents of the tar file)
# tar -f /root/etc.tar --update or -u <file name or directory> (to add the new contents to the existing
tar file)
# tar -f /root/etc.tar --delete <file name or directory> (to delete the file from the tar)
# tar -u /root/etc.tar /var (to add the /var contents into the /root/etc.tar file)
# tar -cvf mytar.tar / --xattrs (to archive the contents along with SELinux and ACL permissions)
# du -h /root/etc.tar (to see the size of the tar compressed file)
5. What are the compressing & uncompressing tools available for tar and explain them?
Compressing Tools Uncompressing Tools
# gzip (.gz) # gunzip
# bzip2 (.bz2) # bunzip2
# xz (RHEL - 7) # unxz
# gzip <tar file name> (to compress the size of the tar file and the output file is .tar.gz)
# gunzip < .gz compressed file name> (to uncompress the compressed tar file and the output is .tar only)
# bzip2 <tar file name> (to compress the size of the tar file and the output is .tar.bz2)
# bunzip2 < .bz2 compressed file name> (to uncompress the compressed file and the output is .tar only)
6. What is scp, rsyncand how to use it?
scp means secure copy. ie., ssh + cp = scp which is used to copy the files/directories into remote system.
scp will copy files/directories into remote system blindly ie., if the file already exits, it will over write that file.
So, scp will take more time to copy when compared to # rsync tool.
# scp <file name><user name>@ <IP address of the remote system>:<location to be copied>
# scp anaconda* [email protected]:/root (to copy anaconda file into /root of the remote system)
# scp -r /etc/ [email protected]:/raju (to copy /etc/ directory into /raju of remote system)
#scp -av /raju [email protected]:/root (to copy /raju into /root of the remote system)
# scp -r [email protected] :/etc /home (to copy /etc of the remote system into /home of the
local system)
rsync is also used to copy files/directories into remote systems. rsync tool will compare the new files or
directories and copy only the changed or modified contents of the files into remote system. So, it takes less time
to copy when compared to # scp tool.
# rsync -av [email protected]:/etc /home (to copy /etc directory changed contents into /home)
rsync options are, -a -----> all (copy the file with all permissions except SELinux and ACL permissions)
RatnakarPage 83
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 84
[Pick the date] [LINUX NOTES FOR LEVEL 2]
-v -----> verbose
-f ----->make the backup in a file
-e -----> exclude inode number while backing up
# dump -0uvf /opt/full.dump /coss (to take a full backup of the /coss file system and copied it in /opt)
# dump -1uvf /opt/full.dump /coss (to take a backup modified files from the last full backup nothing
but incremental backup)
# dump -2uvf /opt/full.dump /coss (to take a backup modified files from the last incremental level -1
backup)
The syntax for restore :
# restore <options><dump backup file> (to restore the backup contents if that data is lost)
The options are, -f -----> used to specify the dump or backup file
-C -----> used to compare the dump file with original file
-v -----> verbose
-e -----> exclude the inode number
-i -----> restore in interactive mode
The commands in interactive mode are,
restore> ls -----> list the files and directories in the backup file
restore> add ----> add the files from dump file to current working directory
restore> cd -----> change the directory
restore> pwd ---> displays the present working directory
restore> extract ----> extract the files from the dump file
restore> quit ---> to quit from the interactive mode
# restore -tf /opt/full.dump (to list the dump file contents)
# restore -rf /opt/full.dump (to restore the dump file contents)
10. How many types of backup available?
There are mainly three types of backups available.
(i) Full backup (Entire file system backup)
(ii) Incremental backup (backup from the last full backup or incremental backup)
(iii) Cumulative or differential backup (backup from last full backup or cumulative backup)
11. What is the difference between incremental and differential backup?
Incremental backup :
Taking a backup from the last full backup or last incremental backup
Differential backup :
Taking a backup from last full backup or last cumulative or differential backup
12. Which file will update when backing up with dump command?
/etc/dumpdates file will be updated when backing up with dump command.
13. What are the dump devices?
(i) Tape drives
(ii) Disks (local disks)
(iii) Luns (network disks)
14. What is snap shot?
RatnakarPage 85
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) The point - in - time copy of the file system is called the snap shot.
(ii) It provides online backup solution of the file system.
(iii) We can take a backup while the file system is mounted and it is in multi-user mode.
(iv) It occupied only as much disk space as the file system ie., being captured.
(v) We can also create backup, delete, query temporary (read-only) snap shots using fssnap command.
15. What are the differences between tar and cpio commands?
(i) By tar we can take backup upto 80GB size of file systems , but using cpio there is no limit.
(ii) In tar the backup is in archive format ie., in compressed state, but in cpio there is no compression.
(iii) In both the types only the whole backup is possible.
16. How to take a backup on production servers?
(i) Normally in backup environment we have 3 servers.
(a) Master server (production servers -- 1 or 2 no's).
(b) Media server (backup server -- 1 or 2 no's).
(c) Client server (Normal system)
(ii) Backups can be taken in types.
(a) Application Backup (Normally application users will take these types of backups)
(b) File system Backup (O/S backup, System Administrators will take these types of backups)
(c) Database Backup (DBA users will take these types of backups)
(iii) Normally backup is automated through some backup tools like Veritas Net backup, IBM Tivoli and Autosys.
(iv) Using cron tool also we can take backup. But cron will not inform the failed backup. The other tools will
inform by sending messages like why the backup is failed, when and where it is failed, ..etc.,
(v) On production servers the backup will follow the procedure,
(a) Master server deport from production.
(b) Import the master server on Media server.
(c) Then Master server will join with the Media server.
(d) Sync the data with the Master server.
(e) Take a backup from Master server and store the copy on Media server.
(f) Split the Master server from Media server.
(g) Deport the Master server from Media server.
(h) Import the Master server on production.
(i) Join the Master server with production.
17. What is your company's backup policy?
(i) By dump command we can take backups on disks, tapes and takes full, incremental and differential or
cumulative backups.
(ii) level 0 -- Full backup (monthly once)
level 3 -- Performed on every Monday (Incremental from last full or last incremental backup)
level 4 -- Performed on every Tuesday (Incremental from last level 3 backup)
level 5 -- Performed on every Wednesday (Incremental from last level 4 backup)
level 6 -- Performed on every Thursday (Incremental from last level 5 backup)
level 7 -- Performed on every Friday (Incremental from last level 6 backup)
level 8 -- Performed on every Saturday (Incremental from last level 7 backup)
RatnakarPage 86
[Pick the date] [LINUX NOTES FOR LEVEL 2]
level 2 -- Performed on every Sunday (differential or cumulative backup from last full backup,
ie., from Monday to Saturday)
18. What is the information is stored in /etc/dumpdates file?
/etc/dumpdates file records the backup information if -u option is used with dump command to take a
backup. In this file each line tells the file system that was backed up, last level of backup, the date, day and time
of the backup.
RatnakarPage 87
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 88
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 89
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# grep -e <string name 1> -e <string 2><file name> (to display 2 or multiple strings in that file)
# grep -o <string name><file name> (to display only that string in that file not whole the text of that file)
# grep -v <string name><file name> (to display all the strings except the specified one)
# grep ^ this coss (to display the line which is starting with the specified string)
RatnakarPage 90
[Pick the date] [LINUX NOTES FOR LEVEL 2]
It is just a snap shot of the current status of the processes. It gives only one terminal information not all the
terminals information.
# top :
Using top command we can monitor the processes continuously. By default every 3 seconds it will refresh
the data.
2. How many process are run generally on Linux and explain them?
There are generally three types of processes that run on Linux. They are,
(i) Interactive Processes
(ii) System Process or deamon
(iii) Automatic or batch.
Interactive Processes :
Interactive processes are those processes that are invoked by a user and can interact with the user. For
example # vi or # vim are the interactive processes. Interactive processes may be run in foreground or
background. The foreground process is the process that we are currently interacting with and is using the
terminal as its stdin (standard input) and stdout (standard output). The background process is not interacting
with the user and can be in one of two states, ie., paused or running.
System Processes or deamons :
Deamon is refer to processes that are running on the computer and provides services but do not interact with
the console. Most server software is implemented as a deamon. For example Apache, samba, sshd are the
deamons. Any process can become a deamon as long as it is run in the background and does not interact with
the user.
Automatic processes :
Automatic processes are not connected to a terminal and these are queued into a spooler area where they wait
to be executed on a FIFO (First In - First Out) basis. Such tasks can be executed using one of two criteria.
At certain date and time : done using the "at" command.
When the total system load is low enough to accept extra jobs : done using the " cron " command. By default
tasks are put in a queue where they wait to be executed until the system load is lower than 0.8 and cron job
processing is also used for optimizing system performance.
3. What is parent process?
The process which starts or creates another process is called the parent process. Every process will be having
a parent process except initd process. The initd process is the parent process to all the remaining processes in
Linux system because it is the first process which gets started by the kernel at the time of booting and it's PID
is 1. Only after initd process gets started, the remaining processes are called by it, and hence it is responsible
for all the remaining processes in the system. The parent process is identified by PPID (parent process ID).
4. What is child process?
A process which started or created by the parent process is called child process and it is identified by PID.
Useful # ps commands :
# ps -a (it displays all the terminals processes information)
# ps -au (it displays all the terminals processes information with user names)
# ps -aux (it displays all the terminals processes information including background
processes with user names)
RatnakarPage 91
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 92
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 93
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# nice -n <nice value range from -20 to 19><command> (to set a priority to a process before starting it)
# nice -n 5 cat > raju (to set the medium priority to cat command)
# ps -elf (to check the nice value for that command)
* To reschedule the nice value of existing process, first check the PID of that process by # ps -elf command
and then change the niceness of that command by # renice <nice value (-20 to 19)>< PID > command.
# renice 10 1560 (to reschedule the PID 1560)
11. What is top command and what it shows?
top is a command to see the processes states and statuses information continuously until we quit by pressing
" q ". By default top command will refresh the data for every 3 seconds.
When we need to see the running processes on our Linux in real time, the top command will be very useful.
Besides the running processes the top command also displays other information like free memory both
physical and swap.
The first line shows the current time, "up 1 day" shows how long the system has been up for, "3 user" how
many users login, "load average : 0.01, 0.00, 0.23" the load average of the system 1, 5 and 15 minutes.
The second line shows the no of processes and their current states.
The third line shows CPU utilization details like % of the users processes, % of the system processes, % of
available CPU and % of CPU waiting time for I/O (input and output).
The fourth and fifth lines shows the total physical memory in the system, used physical memory, free
physical memory, buffered physical memory, the total swap memory in the system, used swap memory, free
swap memory and cached swap memory, ... etc.,
From sixth line onwards the fields are as follows.
PID Process ID
USER Owner of the process ie., which user executed that process
PR Dynamic Priority
NI Nice value, also known as base value
VIRT Virtual size of the task includes the size of processes executable binary
RES The size of RAM currently consumed by the task and not included the swap portion
SHR Shared memory area by two or more tasks
S Task Status
% CPU The % of CPU time dedicated to run the task and it is dynamically changed
% MEM The % of memory currently consumed by the task
TIME+ The total CPU time the task has been used since it started. + sign means it is displayed
with hundredth of a second granularity. By default, TIME/TIME+ does not account the
CPU time used by the task's dead children
COMMAND Showing program name or process name.
* While running the top command, just press the following keys woks and the output will be stored in real time.
1 -----> 2nd CPU information Shift + > -----> Page up
h ----->Help Shift + < -----> Page down
Enter -----> Refresh immediately n -----> Number of tasks
k -----> Kill the process u -----> user processes
RatnakarPage 94
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 95
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# sosreport
This command will normally complete within a few minutes. Depending on local configuration and the options
specified in some cases the command may take longer to finish. Once completed, sosreport will generate a
compressed a file under /tmp folder. Different versions use different compression schemes (gz, bz2, or xz). The
file should be provided to Redhat support representative (normally as an attachment to an open case).
Note: sosreport requires root permissions to run.
Different Options used in sosreport command :
The sosreport command has a modular structure and allows the user to enable and disable modules and specify
module options via the command line. To list available modules (plug-ins) use the following command:
# sosreport -l
To turn off a module include it in a comma-separated list of modules passed to the -n/–skip-plugins option. For
instance to disable both the kvmand amd modules:
# sosreport -n kvm,amd
Individual modules may provide additional options that may be specified via the -k option. For example on Red
Hat Enterprise Linux 5 installations the sos rpm module collects "rpm -Va" output by default. As this may
be time-consuming the behaviour may be disabled via:
# sosreport -k rpm.rpmva=off
16. What is the command to see the complete information on virtual memory?
# vmstat is the command to the complete information on virtual memory like no of processes, memory
usage, paging memory, block I/O (input /output), traps, disk and CPU activity.
# vmstat 2 10 (It will give the report for every 2 seconds upto 10 times)
The fields are, r -----> how many waiting processes
b -----> how many processes are busy
swapd -----> how much virtual memory used
free -----> how much memory is freely available
buffer -----> how much temporary memory using
caching -----> how much caching still using
swapin -----> how much data transferred from RAM to swap
swapout ---> how much data transferred from swap to RAM
bi -----> how much block input
bo -----> how much block output
system in ---> the no. of interrupts
system cs ---> the no. of contexts changed
# vmstat -a (to see the active and inactive processes)
# vmstat -d (to see the statistics of the disk used)
# cat /proc/meminfo (to see the present memory information)
17. What is the command to see the I/O statistics?
# iostat (to see the Input and Output statistics in the Linux system)
* This command is used to monitoring the system input and output statistics and processes transfer rate.
RatnakarPage 96
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* It is also used to monitor how many kilo bytes read per second and how many kilo bytes read and write,
shows CPU load average statistics since the last reboot in first line and most current data is shown in the
second line.
18. How many CPUs are there in the system?
# cat /proc/cpuinfo command will show no. of CPUs, no. of cores, no. of threads, no. of sockets and the
CPU architecture, ...etc., information.
# nproc command will give the no. of CPUs present in the system.
# lscpu command will give the information the architecture of the CPU (x86_64 or x86_32), no. of cores, no.
of threads, no. of sockets, cache memory sizes (L 1, L 2, L 3, ...etc) , CPU speed and the vendor of the CPU.
19. How to send the processor into offline?
# ls -l /sys/devices/system/cpu is the command to see the no. of processors present in the system.
# echo 0 > /sys/devices/system/cpu/cpu4/online is the command to send the CPU4 into offline.
# grep "processor" /proc/cpuinfo or # cat /sys/devices/system/cpu/offline are the command to see the
processor status whether offline.
20. How to send the processor into online?
# ls -l /sys/devices/system/cpu is the command to see the no. of processors present in the system.
# echo 1 > /sys/devices/system/cpu/cpu4/online is the command to send the CPU4 into offline.
# grep "processor" /proc/cpuinfo or # cat /sys/devices/system/cpu/online are the command to see the
processor status whether online.
21. How to clear /var and /tmp directories?
(i) Copy all the entries of those directories into a separate locations.
(ii) Redirect the null values in /var and /tmp directories by executing the below commands.
# cat /dev/null > /var (to nullifying the /var directory)
# cat /dev/null > /tmp (to nullifying the /tmp directory)
22. How to troubleshoot if df -k is giving error?
(i) First check which file system is giving error by # df -k command then see whether any files are opened or
not. If opened then close those files by informing those teams which are using that file system.
(ii) Unmount that file system by taking approval from higher authorities and run fsck on that file system, then
normally it will be solved if we run fsck command.
(iii) If not solved even though we run fsck then delete or remove that file system, recreate that file system,
mount that file system and restore the data from recent backup.
23. What are the differences between a deamon and a process?
(i) Deamon is a service to provide some services to the users, where as a process is to do some particular tasks.
(ii) We can enable or disable the deamon, but we cannot disable or enable the process.
(iii) We can do start or stop the deamon, but we cannot start or stop the process. We only kill the process.
(iv) We can enable or disable to start the deamons at boot time as per our requirement, ie., on demand is
possible, but it is not possible if is a process.
(v) Deamon is a background process where as process is a foreground process.
24. What is command to check the load average?
# uptime is the command to check the system load, present time, from how many hours the system is
running and load average.
RatnakarPage 97
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* The load average shows three fields. The 1st field shows the load average from 1 minute, 2nd field shows
the load average from 5 minutes and 3rd field shows the load average from 15 minutes.
25. How to assign or shift the process to the particular CPU?
(i) First install util-linux package by # yum install util-linux -y command.
(ii) Check the specified process is assigned to which processor ie., which CPU by # taskset -p <pid>
command.
(iii) Then shift the process to another available CPU by # taskset -cp <cpu -list><pid> command.
Examples:
# taskset -p 2125 (to check which processor is assigned to that process ID)
# taskset -cp 0, 4 2125 (to shift the process to the CPUs 0 and 4)
# taskset 0 firefox (to assign the firefox process to the CPU 0)
26. How to limit the CPU usage of a linux process?
(a) First install the cpulimit package by # yum install cpulimit -y command.
* This package is not available in normal Linux packages and it is available in EPEL (Extra Packages for
Enterprise Linux). So, first we have to enable the EPEL repository in our system by following steps.
(i) # yum install epel-release -y (to install the epel-release package in RHEL - 7)
(ii) # rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm (to install the
EPEL package in RHEL - 6)
(ii) # rpm -Uvh http://mirrors.kernel.org/fedora-epel/5/i386/epel-release-5-4.noarch.rpm (to install the
EPEL package in RHEL - 5)
(iii) # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5 (to import the gpg key if it ask when
executing the above command in RHEL - 5)
(iv) # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 (to import the gpg key if it ask when
executing the above command in RHEL - 6)
(v) # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 (to import the gpg key if it ask when
executing the above command in RHEL - 7)
(vi) # yum repolist (to check EPEL repolist)
(b) # cpulimit -p <PID> -l 10 (to see the CPU usage of that process and limit the CPU usage to
10%)
(c) # cpulimit -e /usr/local/bin/myprog -l 20 (to limit the CPU usage of this command to 20%)
27. How to capture the network traffic?
# tcpdump is the command to capture and analyze the network traffic. By using this command we can also
troubleshoot the network problems.
Examples :
# tcpdump (to capture and analyze the network traffic)
# tcpdump -i eth0 (to capture the network traffic from eth0 continuously and Ctrl + c to exit)
# tcpdump -c 30 -i eth0 (to capture the network traffic from eth0 upto 30 packets only)
# tcpdump -w /root/tcp.pcap -i eth0 (to capture the network traffic from eth0 and write that in
/root/tcp.pcap file)
# tcpdump -t t t -r /root/tcp.pcap (to read the contents of the above captured file)
# tcpdump -i eth0 port 22 (to capture the network traffic from eth0 of ssh traffic)
RatnakarPage 98
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# tcpdump -i eth0 dst 172.25.0.11 and port 22 (to capture the network traffic from 172.25.0.11
system of ssh traffic)
28. What is SAR utility and how to use it?
SAR stands for System Activity Report. Using SAR we can check the information of CPU usage, memory,
swap, I/O, disk I/O, networking and paging. We can get the information of the present status and post
status (history using the data) upto last 7 days because HISTORY=7 is there in the configuration file. The log
messages are stored in /var/log/sa/sa1, /var/log/sa/sa2, /var/log/sa/sa3, ....etc., (where 1, 2, 3, ....etc., are
dates). The SAR configuration is stored in /etc/sysconfig/sysstat file. In this file the HISTORY=7 default
option will be there. So, we can change the default 7 days to our required value.
Before using the SAR utility first we should install the SAR utility package by # yum install sysstat* -y
command.
Examples :
# sar 2 10 (It will give the system report for every 2 seconds upto 10 times)
# sar -p 2 10 (to see the CPU utilization for every 2 seconds upto 10 times)
# sar -p ALL -f /var/log/sa/sa25 (to check the CPU utilization on 25th day of the current month)
# sar -p ALL -f /var/log/sa/sa10 -s 07:00:00 -e 15:00:00 (to check the CPU utilization on 10th day of
the current month from 7:00 to 15:00 hrs. where -s means start time -e end time)
# sar -r 2 10 (to see the memory utilization for every 2 seconds upto 10 times)
# sar -r -f /var/log/sa/sa14 (to check the memory utilization on 14th day of the current month)
# sar -r -f /var/log/sa/sa10 -s 07:00:00 -e 15:00:00 (to check the memory utilization on 10th day of
the current month from 7:00 to 15:00 hrs. where -s means start time -e end time)
# sar -S 2 10 (to see the swap utilization for every 2 seconds upto 10 times)
# sar -S -f /var/log/sa/sa25 (to check the swap utilization on 25th day of the current month)
# sar -S -f /var/log/sa/sa10 -s 07:00:00 -e 15:00:00 (to check the swap utilization on 10th day of the
current month from 7:00 to 15:00 hrs. where -s means start time -e end time)
# sar -q 2 10 (to see the load average for every 2 seconds upto 10 times)
# sar -q -f /var/log/sa/sa14 (to check the load average on 14th day of the current month)
# sar -q -f /var/log/sa/sa10 -s 07:00:00 -e 15:00:00 (to check the load average on 10th day of the
current month from 7:00 to 15:00 hrs. where -s means start time -e end time)
# sar -B 2 10 (to see the paging information for every 2 seconds upto 10 times)
# sar -d 2 10 (to see the disk usage for every 2 seconds upto 10 times)
# sar -m 2 10 (to see the power management for every 2 seconds upto 10 times)
# sar -b 2 10 (to see the disk input and output statistics for every 2 seconds upto 10 times)
29. What are the port no. for different services?
The Port no. list :
FTP (For data transfer) 20 HTTP 80
FTP (For connection) 21 POP3 110
SSH 22 NTP 123
Telnet 23 LDAP 389
Send Mail or Postfix 25 Log Server 514
RatnakarPage 99
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* Ping is not used any port number. It is used ICMP (Internet Control Message Protocol) only.
Other useful commands :
# uptime (to see from how long the system is running and also gives the load average report)
* The load average is having 3 fields. 1 - present status, 2 - 5 minutes back and 3 - 15 minutes back.
# iostat 5 2 (to monitor the input and output statistics for every 5 seconds upto 10 times)
# nproc (to check how many processors (CPUs) are there in the system)
# top 1 (to see the no. processors (CPUs) are there in the system)
# iptraf (to monitor the TCP or network traffic statistics in graphical mode)
* Before using this command install the iptraf package by # yum install iptraf* -y command.
# iftraf -ng -f eth0 (to see the IP traffic statistics in graphical mode)
# lscpu (to see the no. of CPUs present in the system)
# lsusb (to see the no. of USB devices present in the system)
# lsblk (to see all the partitions or block devices information)
# cat /etc/redhat-release (to see the RHEL version of system)
# dmidecode (to see the complete hardware information of the system)
# dmidecode -t memory (to see the memory information of the system)
# dmidecode -t bios (to see the system's bios information)
# dmidecode -t system (to see the system's information)
# dmidecode -t processor to see the processor's (CPU's) information of the system)
# dmidecode -t 1 (to check the System's Serial No. information)
# dmidecode -t 4 (to see the processor's (CPU's) information)
# dmidecode -t 16 (to check the Max. RAM capacity of the system)
# dmidecode -t 17 (to check how much RAM the system is using)
# pidstat (to monitoring the individual tasks currently being managed by the Linux kernel)
# nfsiostat (to monitor the NFS input and output statistics)
# cifsiostat (to monitor the Samba input and output statistics)
# stat <file name or directory name> (to see the statistics of the file or directory)
# strings <command name> (to read the binary language of the command)
# find / -nouser -o -nogroup (to see the files which are no belongs to any user and any group)
# systemctl -t help (to see the list of systemd objects that are available)
# systemctl -l help (to see the list of unit names)
# systemctl list-dependencies <service name> (to see the dependent services in a tree manner)
# sleep <seconds>& (to run the sleep processes at background)
RatnakarPage 100
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# jobs (to see the background jobs which were sent by the user)
# fg % < Job ID > (to get back the background job to foreground job)
# Ctrl + z (to stop the process)
# bg % < Job ID > (to restart the process again at background)
* When there are stopped jobs and want to exit from the terminal then, a warning message will be displayed.
If we try again to exit from the terminal,then the stopped or suspended jobs will be killed automatically.
1 What is FTP?
FTP stands for File Transfer Protocol used to transfer files from one host to another host over a TCP-based
network.
2. How ftp works?
FTP is built on client-server architecture and utilizes separate control and data connection between the client
and server. FTP users may authenticate themselves using a clear-text sign-in protocol but can connect
anonymously if the server is configured to allow it.
Usually, the FTP server, which stores files to be transferred, uses two ports for the transferring purpose. One
port for commands and another port for sending and receiving data. Requesting from client computers are
received at the port 21 of server. ie., it is exclusively reserved for sending commands, therefore it is called the
Command Port.
Once an incoming request is received, the data requested or uploaded by the client computer is transferred
through a separate port 22 and referred as Data Port. At this point, depending on the Active or Passive mode
of the FTP connection, the port number used for the Data Transfer Varies.
3. What is Active FTP?
In Active FTP connection, the connection is initiated by the Client, and the data connection is initiated by the
Server. And as the server actively establishes the data connection with the client, hence it is called the Active
FTP. Here the client opens up a port higher than 1024 and it connects to the server through port 21. Then the
server opens its port 20 to establish a data connection.
4. What is Passive FTP?
RatnakarPage 101
[Pick the date] [LINUX NOTES FOR LEVEL 2]
In Passive FTP connection, both command and data connections are established by the client. In this the
server acts as entirely passive, that's why it is called the Passive FTP. Here the server listens for incoming
requested connections from client through port 21 and the client also initiates the data connection at port 20.
5. What is the main difference between the Active FTP and Passive FTP?
The main difference between the Active FTP and the Passive FTP is based on who initiates the data connection
between the server and the client. If the data connection is initiated by the server, that is called Active FTP and
if the data connection is initiated by the client, that is called Passive FTP.
6. What is the profile for FTP server?
(i) It is used for uploading and downloading the files and directories cannot be downloaded.
(ii) The FTP server packageis vsftpd.
(iii) The FTP client packages are ftp and lftp.
(iv) The FTP server deamon is vsftpd (Very Secure FTP deamon)
(v) The FTP scripting file is /etc/initd/vsftpd
(vi)Port numbers 20 for data connection and 21 for FTP command connection.
(vii) The document root for FTP is /var/ftp
(viii) The FTP home directory is /var/ftp
(ix) The FTP configuration files are,
(a) /etc/vsftpd/vsftpd.conf
(b) /etc/vsftpd/user_list
(c) /etc/vsftpd/ftpuser
(d) /etc/pam.d/vsftpd
7. How to configure the FTP server?
(i) Install the FTP package by # yum install vsftpd* -y command.
(ii) Goto FTP document root directory and create some files by # cd /var/ftp/pub
# touch f(1..10}
(iii) Restart the FTP service or deamon by # service vsftpd restart command in RHEL - 6.
# systemctl restart vsftpd command in RHEL - 7.
(iv) Make the FTP service or deamon enable even after reboot the server by
# chkconfig vsftpd on command in RHEL - 6 and # systemctl enable vsftpd command in RHEL - 7.
(v) Add the FTP service to the IP tables (RHEL - 6) and Firewalld (RHEL - 7).
RHEL - 6 :
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --deport 21 -j ACCEPT
# iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --deport 21 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --deport 20 -j ACCEPT
# iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --deport 20 -j ACCEPT
RHEL - 7 :
# firewall-cmd --permanent -add-service=ftp command in RHEL - 7.
# firewall-cmd --complete-reload command in RHEL - 7.
8. How to configure the FTP client and how to connect the ftp server?
(i) Go to the client machine and install the FTP and Lftp packages.
# yum install ftp* lftp* -y
RatnakarPage 102
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 103
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 104
[Pick the date] [LINUX NOTES FOR LEVEL 2]
By default root user is blocked to access the FTP server. To allow the root user to access the FTP server follow
the below steps.
(i) Open the /etc/vsftpd/user_list file by # vim /etc/vsftpd/user_list command.
(ii) Go to root user line and comment on that line. For example # root (save and exit the file)
(iii) Open the /etc/vsftpd/ftpuser file by # vim /etc/vsftpd/ftpuser command.
(iv) Go to root user line and comment on that line. For example # root (save and exit the file)
(v) Restart the ftp deamon by # service vsftpd restart command in RHEL - 6 or
# systemctl restart vsftpd command in RHEL - 7.
* Even though we changed the above, the root user cannot access the FTP server because the home
directory context is not added. we can solve this as follows.
(vi) # getsebool -a | grep ftp (to check the SELinux Boolean of the root home directory)
(vii) # setsebool -p ftp_home_dir on (to change the Boolean of the root home directory)
* Now go to client system and try to login the FTP server as root user. Here we can access the FTP server.
16. What are the difference between FTP and LFTP servers?
(i)The user name and password are required to access the FTP server but LFTP does not requires passwords.
(ii) In ftp>prompt the " Tab " key will not work but in lftp> prompt the " Tab " key will work as usual.
Other useful FTP Commands :
# ftp 172.25.9.11 (to access the FTP server provide FTP user name and password)
ftp > ls (to see all the files and directories in FTP root directory)
ftp > !ls (to see the local nothing present working directory files)
ftp > pwd (to see the FTP present working directory)
ftp > !pwd (to see the local file system's present working directory)
ftp > get <file name> (to download the specified file)
ftp > mget <file 1><file 2><file3> (to download multiple files at a time)
ftp > cd /var/ftp/pub/upload (to move to upload directory)
ftp > put <file name> (to upload the specified file into the FTP upload directory)
ftp > lcd /root/Downloads (to change to the local /root/Download directory)
ftp > help (to get the help about FTP commands)
ftp > bye or quit (to quit or exit from the FTP server)
# lftp 172.25.9.11 (to access the LFTP server without asking any passwords)
RatnakarPage 105
[Pick the date] [LINUX NOTES FOR LEVEL 2]
client access the remote file systems same as local file system because access does not requires the IP address,
user name and password. However we can provide the security using the kerberos security.
2. What are the disadvantages of NFS?
(i) NFS does not support cross plat forms. ie., it will not support the sharing the files between Linux and
Windows systems.
(ii) NFS does not support encryption of the data and it supports only plain text format.
(iii) NFS does not support TCP Wrappers, ie., NFS does not support /etc/hosts.allow and /etc/hosts.deny,
because there is no libwrap.so module is not loaded with NFS service.
(iv) NFS does not support authentication. So, to overcome this problem kerberos security system is used.
3. What is the profile of NFS?
Package : nfs*
Services : nfs (in RHEL - 6)
nfs-server, nfs-secure-server (nfs with kerberos) (both for NFS server)
nfs-secure (for NFS client) (these three services are in RHEL - 7)
Script : /etc/init.d/nfs
Port numbers : 2049 (for NFS server) and below 1024 (for NFS client)
Configuration Files : /etc/exports and /etc/sysconfig/nfs
Other Important Files : /var/lib/nfs/etab and /var/lib/nfs/rmtab
Versions : NFS - 3 (default in RHEL - 5) but it supports NFS - 4
NFS - 4 (default in RHEL - 6) but It also supports NFS - 3
NFS - 4 (default in RHEL - 7) but it also supports NFS - 3
Protocol : udp protocol
4. What are the background deamons for NFS and explain them?
There are 6 background deamons for NFS.
(i) rpc . mountd :
This deamon is responsible for executing mount and unmount requests by the client.
(ii) rpc . nfsd :
This deamon responds to clients requests for file access.
(iii) rpc . rquotad :
This deamon is responsible for enabling quotas on NFS shared devices.
(iv) rpc . statd :
This deamon is used to see the statistics about NFS server from NFS client when executing the
commands # netstat or # nfsstat (to see the I/O statistics of NFS)
RatnakarPage 106
[Pick the date] [LINUX NOTES FOR LEVEL 2]
In NFS 3 there is no ACL permissions on the shared directory, but in NFS 4 there is an ACL permissions on the
shared directory.
6. In how many ways we can mount the NFS shared directory?
In order to access the NFS shared data, we have to mount that shared directory on local mount point. The
mounting can be direct mount (manual mount) and indirect mount (auto mount).
Direct mount :
First create the local mount point and then mount that shared NFS directory on our local systems mount point
by # mount <server host name or IP address> : <shared directory with full path><mount point>
command. But this is temporary mount and we can mount it permanently by put an entry in /etc/fstab file.
Example :
# mount 172.25.9.11:/product /mnt/nfs (to mount the directory /product on /nfs mount point
temporarily)
# vim /etc/fstab (open this file and put an entry of mount point to mount permanently)
172.25.9.11:/product /mnt/nfs nfs defaults 0 0 (save and exit this file)
Indirect mount :
This method is used to mount the NFS share by using the Autofs service. Autofs uses the automount daemon to
manage our mount points by only mounting them dynamically when they are accessed.
Autofs consults the master map configuration file /etc/auto.master to determine which mount points are
defined. It then starts an automount process with the appropriate parameters for each mount point. Each line
in the master map defines a mount point and a separate map file that defines the file systems to be mounted
under this mount point. For example, the /etc/auto.misc file might define mount points in the /mnt directory;
this relationship would be defined in the /etc/auto.master file.
Each entry in auto.master has three fields. The first field is the mount point. The second field is the location of
the map file, and the third field is optional. The third field can contain information such as a timeout value.
For example, to mount the directory /product on the remote machine server9.example.com at the mount
point /mnt/nfs on your machine, add the following line to auto.master:
/mnt /etc/auto.misc --timeout 60
Next, add the following line to /etc/auto.misc:
nfs -rw server9.example.com:/product
The first field in /etc/auto.misc is the name of the /mnt subdirectory. This subdirectory is created dynamically
by automount. It should not actually exist on the client machine. The second field contains mount options such
asrw for read and write access. The third field is the location of the NFS export including the hostname and
directory.
The directory /mnt must be exits on the local file system. There should be no sub directories on the local file
system.
To start the autofs service, at a shell prompt, type the following command:
# servive autofs restart
To view the active mount points, type the following command at a shell prompt:
# service autofs status
If you modify the /etc/auto.master configuration file while autofs is running, you must tell the automount
daemon(s) to reload by typing the following command at a shell prompt:
RatnakarPage 107
[Pick the date] [LINUX NOTES FOR LEVEL 2]
rw read/write permissions
ro read-only permissions
(vii) Export the above shared directory to the defined client systems by # exportfs -rv command.
(viii) Restart the NFS services by following the commands in RHEL - 6 and RHEL - 7.
# service rpcbind restart (to restart the rpcbind service in RHEL - 6)
# service nfs restart (to restart the NFS service in RHEL - 6)
# systemctl restart nfs-server (to restart the NFS service in RHEL - 7)
RatnakarPage 108
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(ix) Make the NFS service permanently boot at next boot time onwards as follows.
# chkconfig rpcbind on (to on the rpcbind service in RHEL - 6)
# chkconfig nfs on (to on the nfs service in RHEL - 6)
# systemctl enable nfs-server (to enable the nfs-server in RHEL - 7)
(x) Export the NFS shared directory as follows.
# exportfs -rv
(xi) Enable the NFS service to the IP tables and Firewall in RHEL - 6 and RHEL - 7 as follows.
In RHEL - 6 :
(i) # setup
(a) Select Firewall Configuration.
(b) Select Customize ( Make sure firewall option remain selected ).
(c) Select NFS4 ( by pressing spacebar once ).
(d) Select Forward and press Enter.
(e) Select eth0 and Select Close button and press Enter.
(f) Select ok and press Enter.
(g) Select Yes and press Enter.
(h) Select Quit and press Enter.
(ii) Now open/etc/sysconfig/iptables file and add the following rules under the rule for port 2049 and save
file.
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 662 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 662 -j ACCEPT
(iii) Restart the IP tables service by # service iptables restart command.
(iv) Make the IP tables service as permanent from next boot onwards as follows.
# chkconfig iptables on
The following commands could be helpful for troubleshooting :
In RHEL - 7 :
# firewall-cmd --permanent -add-service=nfs (to enable the nfs service at firewall)
RatnakarPage 109
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 110
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) Manual mounting means, we have to mount manually, so it creates so many problems. For example if NFS
service is not available then, # df -hT command will hang.
(ii) If the NFS server is down while booting the client, the client will not boot because it searches for NFS
mount point as an entry in /etc/fstab file.
(iii) Another disadvantage of manual mounting is it consumes more memory and CPU resources on the client
system.
So, to overcome the above problems normally indirect or automount is used using Autofs tool.
12. What is secure NFS server and explain it?
Secure NFS server means NFS server with Kerberos security. It is used to protect the NFS exports.
Kerbebors is a authentication tool to protect the NFS server shares. It uses the krb5p method to protect by
authentication mechanism and encrypt the data while communication.
For this one key file is required and this should be stored in each and every client which are accessing the nfs
secure directory. Then only Kerberos security will be available. This key file should be stored in
/etc/krb5.keytab file. For example the following command will download and store the keytab.
# wget http://classroom.example.com/pub/keytabs/server9.keytab -O /etc/krb5.keytab (where O is capital)
13. How to configure the secure NFS server?
(i) Install the NFS package.
# yum install nfs* -y
(ii) Create a directory to share through NFS server.
# mkdir /securenfs
(iii) Modify the permissions of shared directory.
# chmod 777 /securenfs
(iv)Change the SELinux context of the directory if the SELinux is enabled.
# chcon -t public_content_t /securenfs
(v) Open the NFS configuration file and put an entry of the shared directory.
# vim /etc/exports
/securenfs *.example.com(rw,sec=krb5p) (save and exit the file)
(vi)Download the keytab and store it in /etc/krb5.keytb file.
# wget http://classroom.example.com/pub/keytabs/server9.keytab -O /etc/krb5.keytab
(vii)Export the shared the directory.
# exportfs -rv
(viii) Restart and enable the NFS services in RHEL - 6 and RHEL - 7.
# service nfs restart (restart the NFS service in RHEL - 6)
# service nfs-secure-server restart (restart the secure NFS service in RHEL - 6)
# chkconfig nfs on (enable the NFS service in RHEL - 6)
# systemctl restart nfs-server (restart the NFS service in RHEL - 7)
# systemctl restart nfs-secure-server (restart the secure NFS service in RHEL - 7)
(ix) Enable the IPtables or firewall to allow NFS servicein RHEL - 6 and RHEL - 7 as follows.
In RHEL - 6 :
(i) # setup
(a) Select Firewall Configuration.
RatnakarPage 111
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 112
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(vii) Open /etc/fstab file and put an entry of the NFS shared mounting details to mount it permanently.
# vim /etc/fstab
server9.example.com:/securenfs /mnt/nfssecure nfs defaults,sec=krb5p 0 0
(save and exit the file)
(viii) Mount all the file systems which are having the entries of the /etc/fstab file.
# mount -a
(ix) Check all the mounted file systems with file system type on client system.
# df -hT
15. How to mention the NFS version while configuring?
(i) Open /etc/sysconfig/nfs file by # vim /etc/sysconfig/nfs command.
(ii) Go to line no. 13 and edit the line as below,
RPCNFSDARGS=" - 4.2 "
(iii) Save and exit this file.
16. How to add the LDAP user shared directory and how the LDAP user access that directory on client?
(i) Create a sub-directory in /securenfs directory.
# mkdir /securenfs/secure
(ii) Change the ownership of the above sub directory to LDAP user.
# chown ldapuser9 /securenfs/secure
(iii) Assign the full permissions on that directory to LDAP user.
# setfacl -m u : ldapuser9 : rwx /securenfs/secure
(iv) Change the SELinux context of that directory if SELinux is enabled.
# chcon -t public_content_t /securenfs/secure
(v) Re-export the secure NFS shared directory.
# exportfs -rv
(vi) Restart the NFS services.
# service nfs restart (restart the NFS service In RHEL - 6)
# service nfs-secure-server restart (restart the secure NFS service In RHEL - 6)
# systemctl restart nfs (restart the NFS service In RHEL - 7)
# systemctl restart nfs-secure (restart the secure NFS service In RHEL - 7)
On Client side :
(i) Login as LDAP user on local system through ssh.
# ssh ldapuser9@localhost (type yes and press Enter if it asks (yes/no))
(ii) Type the password as kerberos if it asks the LDAP user password.
(iii) Go to that secure NFS shared mount point and access the contents.
$ cd /mnt/nfssecure (to access the mount point)
$ ls (to see the contents in that)
$ cd secure (to access the sub directory)
$ ls (to see the contents in that)
$ exit (to exit or logout from ssh)
17. What are the advantages of NFS?
RatnakarPage 113
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) NFS allows multiple computers can use same files, because all the users on the network or domain can
access the same data.
(ii) NFS reduces the storage costs by sharing applications on computers instead of allocating local disk space for
each user application.
(iii) NFS provides data consistency and reliability, because all users can read same set of files.
(iv) NFS supports heterogeneous environments which are compatible to NFS.
(v) NFS reduces System Administration overhead.
18. Remote user cannot mount the NFS shared directory. How to resolve this?
(i) First check the user belongs to the same domain as the NFS shared or not. ie., the user's system domain
and NFS shared system domain should communicate.
(ii) Check the user's system is pinging or not.
(iii) Check the user's name is present, not present or disabled to access the NFS server.
(iv) Check the mounted file system is shared or not.
(v) Check all the NFS server and client deamons are running or not.
(vi) Check all the network connections are properly established or not.
(vii) Check whether the NFS service is running or not in server's current run level.
(viii) Check whether the NFS server is running or hung or shutdown.
(ix) Check both NFS server and NFS client systems network routers, network connections and IP addresses.
(x) Check the mount point is correct or not, paths are correct or not and files are there or not.
(xi) Check the NFS shared directory and mount point details are correct or not in /etc/fstab file.
(xii) Check the keytabs are downloaded and stored properly in /etc/krb5.keytab file on both NFS server and
client.
(xii) Finally check whether the NFS port no. 2049 is running or not and make sure that the IP tables or
firewall should not block the NFS service.
19. NFS server and NFS client configurations are OK, but at client it is not showing anything. How to resolve?
(i) The rpcbind may be failed.
(ii) The server is not responding.
(iii) NFS client may be failed at reboot.
(iv) The NFS service is not responding.
(v) The deamons on both systems may not be running.
(vi) Network may be failed on both server and client or any one system.
(vii) May be server and client are not in the same domain or not pinging.
(viii) The server may be in hung or shutdown state.
20. What is Autofs ?
Autofs is service that can automatically mount the shared directory on demand and will automatically unmount
the shared directory if it is not accessed within the specified timeout period. The default timeout period is 5
minutes or we can specify the timeout period in /etc/auto.master file.
21. What are the advantages of the Autofs?
(i) Shares are accessed automatically and transparently when a user tries to access any files or directories
under the designated mount point of the remote file system to be mounted.
(ii) Booting time is significantly reduced because no mounting is done at boot time.
RatnakarPage 114
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(iii) Network access and efficiency are improved by reducing the number of permanently active mount points.
(iv) Failed mount requests can be reduced by designating alternate servers as the source of a file system.
(v) Users do not need to have root privilegesto mount or unmount the mount point.
(vi) We can reduce the CPU and memory utilizations because autofs will not mount permanently.
(vii) We can also reduce hard disk utilization because permanent mount points occupies the hard disk space.
22. What are the minimum requirements for Autofs?
(i) autofs package.
(ii) autofs deamon.
(iii) One shared directory.
(iv) One mount point.
(v) Two configuration files are,
(a) /etc/auto.master
(b) /etc/auto.misc
23. How to configure Autofs?
(i) Install the autofs package by # yum install autofs* -y command.
(ii) Open /etc/auto.master file by # vim /etc/auto.master and at last type as below.
< Client's local mount point> /etc/auto.misc --timeout=60
Example :
/mnt /etc/auto.misc (save and exit this file)
( * Where timeout=60 means, if the directory is not used for 60 seconds then the shared directory is
unmounted automatically. And the default is 5 minutes.)
(iii) Open /etc/auto.misc file by # vim /etc/auto.misc and types as below.
< Client temporary mount point >-<permissions><IP address or hostname of the server> : <shared
name>
Example :
nfs -ro (or) -rw classroom.example.com:/public (save and exit this file)
( * where -ro means read-only and -rw means read-write)
(iv) Restart the autofs service in RHEL -6 and RHEL - 7.
# service autofs restart (restart the autofs service in RHEL - 6)
# chkconfig autofs on (enable the autofs service at next boot in RHEL - 6)
# systemctl restart autofs (restart the autofs service in RHEL - 7)
# systemctl enable autofs (enable the autofs service at next boot in RHEL - 7)
(iv) Goto the Client local mount point which is entered in /et/auto.master file by # cd <mount point>
command.
Example :
# cd /mnt
(v) Goto the Client temporary mount point which is entered in /etc/auto.misc file as below.
# cd /mnt/<temporary mount point>
Example :
# cd nfs
# pwd (the output is /mnt/nfs)
RatnakarPage 115
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 116
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* The LDAP packages are different in RHEL - 6 and RHEL - 7 but, the configuration of LDAP is same in
both the versions.
(ii) Create the LDAP users and passwords in the LDAP server.
(iii) Configure the LDAP user's authentication by # system_config_authentication command in graphical
user interface.
(iv) The above command will display the configuration window and in that select and type the option as below.
User Account Database = LDAP
LDAP search base on = dc=example, dc=com
LDAP server = ldap://classroom.example.com/
Enable TLS to encrypt = Click on Download CA Certificate button and then enter the url as,
http://classroom.example.com:/pub/example-ca.crt
Authentication Method = LDAP Password (then click on Apply button)
(v) Check whether the LDAP user is configured or not by # getent password ldapuser9 command.
29. How to mount the LDAP user's home directory automatically when demand using Autofs tool?
(i) Install the autofs package by # yum install autofs* -y command.
(ii) Open the /etc/auto.master file by # vim /etc/auto.master command and type as below.
/home/guests /etc/auto.misc (save and exit this file)
(iii) Open the /etc/auto.misc file by # vim /etc/auto.misc command and type as below.
ldapuesr9 -rw classrrom.example.com:/home/guests/ldapuser9 (save and exit this file)
(iv) Restart the autofs services.
# service autofs restart (restart the autofs service in RHEL - 6)
# chkconfig autofs on (enable the autofs service at next boot in RHEL - 6)
# systemctl restart autofs (restart the autofs service in RHEL - 7)
# systemctl enable autofs (enable the autofs service at next boot in RHEL - 7)
RatnakarPage 117
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 118
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(ii) There is a security in Samba because Samba requires authentication, whereas in NFS there is no security if
there is no kerberos because NFS does not requires authentication.
(iii) Samba will support printer sharing, whereas NFS will not support printer sharing.
3. What are the different file systems for sharing different O/S?
(i) Windows --- Windows -----> Distributed File system (DFS)
(ii) Linux --- Linux -----> Network File system (NFS)
(iii) Unix --- Unix -----> Network File system (NFS)
(iv) Apple MAC --- Apple MACs -----> Apple File sharing Protocol (AFP)
(v) Windows --- Linux -----> Common Internet File system (CIFS)
4. What are the requirements or what is the profile of Samba?
(i) Packages : samba* for samba server and samba-client* for samba client
(ii) Deamons : smbd and nmbd for RHEL - 6 where as smbd is for Samba server deamon and
nmbd is for Netbios service deamon.
smb and nmb for RHEL - 7 where as smb is for Samba server deamon and nmb
is for Netbios service deamon.
(iii) Scripting files : /etc/init.d/smb and /etc/init.d/nmb
(iv) Port number : 137 ---> to verify the share name, 138 ---> to data transfer,
139 ---> to connection establish and 445 ---> for authentication
(v) Log file : /var/log/samba
(vi) Configuration : /etc/samba/smb.conf
(vii) File systems : CIFS (Common Internet File system)
5. How to configure the Samba server?
(i) Install the samba package by # yum install samba* -y command.
(ii) Create a samba shared directory by # mkdir /samba command.
(iii) Modify the permissions of the above samba shared directory.
# chmod 777 /samba
(iv) Modify the SELinux context of the samba directory if SELinux is enabled.
# chcon -t samba_share_t /samba
(v) Create the samba user and assign the password for the samba user.
# useradd raju (to create the samba user)
# smbpasswd -a raju (to assign the samba password for the user raju)
(vi) Assign the ACL permissions (like read, write and execute) to the above shared directory if it is
necessary.
# setfacl -m u : <user name> : rwx <samba shared name>
Example : # setfacl -m u:raju:rwx /samba
(vii) Open the samba configuration file and put an entries of the Samba configuration.
# vim /etc/samba/smb.conf
Go to last line and copy the last 7 lines and paste them at last. And then modify as below.
[samba] (this is the samba shared name)
comment = public stuff (this is a comment for samba)
RatnakarPage 119
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 120
[Pick the date] [LINUX NOTES FOR LEVEL 2]
smb:/> get <file name> (to download the specified file from samba server)
smb:/> mget <file 1><file 2><file 3><file4> ... (to download multiple files from samba server)
smb:/> put <file name> (to upload the specified file to the samba server)
smb:/> put <file 1><file 2><file 3><file 4> ... (to upload multiple files to the samba server)
smb:/> exit (to exit from the samba server)
7. How to mount the samba shared directory permanently?
(i) Create the mount point for the samba shared directory.
# mkdir /mnt/samba
(ii) Put an entry of the mount point details in /etc/fstab file.
# vim /etc/fstab
//<samba server host name or IP address>/<shared directory name><mount point> cifs defaults ,
username=<samba user name>, password=<user's samba password> 0 0
Example : //server9.example.com/samba /mnt/samba cifs defaults, username=raju,
password=<samba password> 0 0 (save and exit this file)
(iii) Mount all the mount points which are having entries in /etc/fstab file.
# mount -a
(iv) Check all the mount points by # df -hT command.
8. How to mount the samba shared directory using credential file?
(i) Create one file and put an entries of the user name and password details.
# vim /root/smbuser
username=raju
password=<user's samba password> (save and exit the file)
(ii) Open /etc/fstab file and put an entries of the above credential details of user.
# vim /etc/fstab
//server9.example.com/samba /mnt/samba cifs credentials=/root/smbuser, multiuser, sec=ntlmssp
0 0
(save and exit this file)
9. How to access the samba share directory if it already mounted?
(i) Go to Client system and switch to samba user.
# su - raju
$ cd /mnt/samba
$ ls (permission denied message will be displayed)
$ cifscreds add <host name or IP address of the samba server>(to add cifs credentials to the server)
$ ls (to see the contents of the samba shared directory)
10. How to access the samba server from windows system?
(i) Goto Windows system, click on START button, click on Run and type as \\172.25.9.11\samba command.
(ii) Then provide samba user name and password if it prompts us.
(iii) Then see the contents of the samba shared directory.
Other useful commands :
# smbpasswd -a <user name> (to add the samba password to the samba user)
# smbpasswd -d <user name> (to disable the samba user's password)
RatnakarPage 121
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 122
[Pick the date] [LINUX NOTES FOR LEVEL 2]
1. What is DNS?
DNS stands for Domain Naming System. The DNStranslates Internet domain and host names to IP addresses.
DNS automatically converts the names we type in our Web browser address bar to the IP addresses of Web
servers hosting those sites.
DNS implements a distributed database to store this name and address information for all public hosts on the
Internet. DNS assumes IP addresses do not change (are statically assigned rather than dynamically assigned).
2. What is DNS server and how it works?
In any network, the hosts primarily communicate between each other through IP addresses. For example, if my
computer is doing a google search, my computer is actually communicating with the IP address of one of the
web servers of google.com. However, even if the computer is efficient with numbers, humans on the other
hand work better with names. For this reason, the TCP/IP protocol includes the Domain Name System (DNS) to
link between IPs and computer names i.e. hostnames. The DNS is a distributed database of computers that is
responsible for resolving hostnames against IP addresses and vice-versa.
Any DNS query involves two parts.
(i) The Resolver: The resolver forms up or initiates the query. The resolver itself does not run as a program.
/etc/resolve.conf is an example of a resolver.
(ii) Name Server: The Name Server is the service running in the server that responds to the DNS query
generated by the resolver i.e. answers to the question of the resolver.
The working DNS :
(i) The client initiates a query to find a domain example.com. The client sends the query to the DNS server of
the ISP. (The DNS Server IP in the client computer is set as the IP address of the DNS Server of the ISP)
(ii) The DNS Server of the ISP first checks it's own cache to check whether it already knows the answer. But as
the answer is not present, it generates another query. As the Top Level Domain of example.com is .com,
so the DNS server queries the Internet Registration Authority to find who is responsible for example.com.
(iii) The Internet Registration Authority responds to the ISP by answering the query.
(iv) Once the ISP DNS Server knows the authoritative name servers, it contacts the authoritative name servers
to find out the IP address for www.example.com i.e. the IP address of host www in the domain example.com.
(v) example.com responds to the ISP DNS Server by answering the query and providing the IP address of the
web server i.e. www
(vi) The ISP DNS Server stores the answer in it's cache for future use and answers to the client by sending the IP
address of the www server.
(vii) The client may store the answer to the DNS query in it's own cache for future use. Then the client
communicates directly with the www server of domain example.com using the IP address.
(viii) The www server responds by sending the index.html page.
3. What is the format of the domain name?
RatnakarPage 124
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Like a physical address, internet domain names are hierarchical way. If the Fully Qualified Domain Name is
www.google.co.in , the www is the Hostname, google is the Domain, co is the Second Level Domain and
in is the Top Level Domain.
4. What are the files we have to edit to configure the DNS?
There are four files to edit to configure the DNS. They are /etc/named.conf, /etc/named.rfc1912.zones,
Forward Lookup Zoneand Reverse Lookup Zone. DNS provides a centralised database for resolution. Zone
is storage databasewhich contains all the records.
Forward Lookup Zone is used to resolveHostnames to IP addresses.
Reverse Lookup Zone is used to resolve IP addresses to Hostnames.
5. What are the DNS record and explain them?
(i) SOA Record : (Start of Authority)
SOA contains the general administration and control information about the domain.
(ii) Host A Record :
(a) It is nothing but aForward Lookup Zone.
(b) It maps Hostname to IP address.
(iii) PTR : (Pointer Record)
(a) It is nothing but a Reverse Lookup Zone.
(b) It maps IP address to Hostname.
(iv) NS Record : (Name Server Record)
It stores the DNS server IP addresses.
(v) MX Record : (Mail Exchange Record)
It stores the records of the Mail Server IP address.
(vi) CNME Record :
It is nothing but Host's Canonical name allows additional names or aliases to be used locate a system.
6. What is the profile of the DNS?
Package : bind and caching-name
Script : /etc/init.d/named
Configuration file : /etc/named.conf and /etc/named.rfc1912.zones
Client's configuration file : /etc/resolve.conf
Document root : /var/named/
Log file : /var/log/messages
Deamon : named
Port number : 53
7. How to configure the DNS server?
(i) Install the packages bind, caching-name for RHEL - 6 &bind, cashing-name and unbound for RHEL - 7.
# yum install bind* caching-name* -y (to install the DNS packages for RHEL - 6)
# yum install bind* caching-name* unbound* -y (to install the DNS packages for RHEL - 7)
(ii) Change the hostname by adding fully qualified domain name and make it permanent.
# hostname <fully qualified domain name> (to change the hostname in RHEL - 6)
# hostname server9.example.com (example for setting hostname temporarily in RHEL - 6)
# hostnamectl set <fully qualified domain name> (to change the hostname in RHEL - 7)
RatnakarPage 125
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 126
[Pick the date] [LINUX NOTES FOR LEVEL 2]
@ IN SOA <DNS server fully qualified domain name> . com root . <domain name> . {
* Go to line number 8 and edit as follows.
NS <DNS server fully qualified domain name> .
A <DNS server IP address>
<DNS server fully qualified domain name> IN A <DNS server IP address>
<Client 1 fully qualified domain name> IN A <Client 1 IP address>
<Client 2 fully qualified domain name> IN A <Client 2 IP address>
<Client 3 fully qualified domain name> IN A <Client 3 IP address>
www IN CNAME <DNS server fully qualified domain name>
Example : The line number 2 should be edited as follows.
@ IN SOA server9.example.com. root.example.com. {
The line number 8 should be edited as follows.
NS server9.example.com.
A 172.25.9.11
server9.example.com. IN A 172.25.9.11
client9.example.com. IN A 172.25.9.10
client10.example.com. IN A 172.25.9.12
client11.example.com. IN A 172.25.9.13
www IN CNAME server9.example.com. (save and exit this file)
(v) Copy /var/named/named.empty file to /var/named/named.reverse and edit as follows.
# cp -p /var/named/named.empty /var/named/named.reverse
# vim /var/named/named.reverse
* Go to line number 2 and edit as follows.
@ IN SOA <DNS server fully qualified domain name> . com root . <domain name> . {
* Go to line number 8 and edit as follows.
NS <DNS server fully qualified domain name> .
<Last octet of the DNS server IP address> IN PTR <DNS server fully qualified domain name>
<Last octet of the Client 1 IP address> IN PTR <Client 1 fully qualified domain name>
<Last octet of the Client 2 IP address> IN PTR <Client 2 fully qualified domain name>
<Last octet of the Client 3 IP address> IN PTR <Client 3 fully qualified domain name>
<DNS server fully qualified domain name> IN A <DNS server IP address>
www IN CNAME <DNS server fully qualified domain name>
Example : The line number 2 should be edited as follows.
@ IN SOA server9.example.com. root.example.com. {
The line number 8 should be edited as follows.
NS server9.example.com.
11 IN PTR server9.example.com.
10 IN PTR client9.example.com.
12 IN PTR client10.example.com.
13 IN PTR client11.example.com.
server9.example.com. IN A 172.25.9.11
RatnakarPage 127
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 128
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Example :
# ping -c3 server9.example.com
# ping -c3 172.25.9.11
(xiii) Check the resolution with host command.
# host <hostname> (to check the resolution with hostname)
# host <IP address> (to check the resolution with IP address)
Example :
# host server9.example.com
# host 172.25.9.11
(xiv) Check the resolution with nslookup command.
# nslookup <hostname> (to check the resolution with hostname)
# nslookup <IP address> (to check the resolution with IP address)
Example :
# nslookup server9.example.com
# nslookup 172.25.9.11
8. How to configure the DNS client?
(i) First assign the static IP address to the client.
(ii) Set the hostname to the client.
(iii) Restart the network service by #service network restart command.
(iv) Open /etc/resolve.conf file and edit as below.
# vim /etc/resolve.conf
search <domain name>
nameserver <DNS server IP address>
Example :
search example.com
nameserver 172.25.9.11 (save and exit this file)
(v) Check whether the DNS is resolving or not.
# dig <DNS server fully qualified name> (to check the resolving from hostname to IP address)
# dig -x <DNS server IP address> (to check the resolving from IP address to hostname)
Example : # dig server9.example.com
# dig -x 172.25.9.11
# dig client9.example.com
# dig -x 172.25.9.10
(vi) Check the resolution with ping test.
# ping -c3 <DNS client fully qualified domain name> (to check the ping test with hostname)
# ping -c3 <IP address of the DNS server> (to check the ping test with IP address)
Example :
# ping -c3 client9.example.com
# ping -c3 172.25.9.10
# ping -c3 server9.example.com
# ping -c3 172.25.9.11
RatnakarPage 129
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 130
[Pick the date] [LINUX NOTES FOR LEVEL 2]
type-slave;
file "slaves/<forward lookup zone file name>";
master { <Primary DNS server IP address; };
};
Example : zone "example.com" IN {
type-slave;
file "slaves/named.forward";
master { 172.25.9.11; };
};
* Go to line number 31 and copy 5 lines and paste them at last of the file.
zone "<Three octets of the DNS server IP address> . in . addr . arpa" IN {
type-slave;
file "slaves/<reverse lookup zone file name>";
master { <Primary DNS server IP address; };
};
Example : zone "9.25.172 . in . addr . arpa" IN {
type-slave;
file "slaves/named.reverse";
master { 172.25.9.11; };
}; (save and exit this file)
(iv) Copy /var/named/slaves/named.localhost to /var/named/slaves/named.forward and edit as follows.
# mkdir /var/named/slaves
# cp -p /var/named/slaves/named.localhost /var/named/slaves/named.forward
# vim /var/named/slaves/named.forward
* Go to line number 2 and edit as follows.
@ IN SOA <secondary DNS server fully qualified domain name> . comroot . <domain name> . {
* Go to line number 8 and edit as follows.
NS <DNS server fully qualified domain name> .
A <DNS server IP address>
<secondary DNS server fully qualified domain name> IN A <secondary DNS server IP address>
<DNS server fully qualified domain name> IN A <DNS server IP address>
<Client 1 fully qualified domain name> IN A <Client 1 IP address>
<Client 2 fully qualified domain name> IN A <Client 2 IP address>
<Client 3 fully qualified domain name> IN A <Client 3 IP address>
www IN CNAME <DNS server fully qualified domain name>
Example : The line number 2 should be edited as follows.
@ IN SOA server6.example.com. root.example.com. {
The line number 8 should be edited as follows.
NS server6.example.com.
A 172.25.6.11
server6.example.com. IN A 172.25.6.11
RatnakarPage 131
[Pick the date] [LINUX NOTES FOR LEVEL 2]
server9.example.com. IN A 172.25.9.11
client9.example.com. IN A 172.25.9.10
client10.example.com. IN A 172.25.9.12
client11.example.com. IN A 172.25.9.13
www IN CNAME server6.example.com. (save and exit this file)
(v) Copy /var/named/slaves/named.empty file to /var/named/slaves/named.reverse and edit as follows.
# cp -p /var/named/slaves/named.empty /var/named/slaves/named.reverse
# vim /var/named/slaves/named.reverse
* Go to line number 2 and edit as follows.
@ IN SOA <secondary DNS server fully qualified domain name> . comroot . <domain name> . {
* Go to line number 8 and edit as follows.
NS <secondary DNS server fully qualified domain name> .
<Last octet of the secondary DNS server IP address> IN PTR <secondary DNS server fully qualified
domain name>
<Last octet of the DNS server IP address> IN PTR <DNS server fully qualified domain name>
<Last octet of the Client 1 IP address> IN PTR <Client 1 fully qualified domain name>
<Last octet of the Client 2 IP address> IN PTR <Client 2 fully qualified domain name>
<Last octet of the Client 3 IP address> IN PTR <Client 3 fully qualified domain name>
<secondary DNS server fully qualified domain name> IN A <secondary DNS server IP address>
www IN CNAME <secondary DNS server fully qualified domain name>
Example : The line number 2 should be edited as follows.
@ IN SOA server6.example.com. root.example.com. {
The line number 8 should be edited as follows.
NS server6.example.com.
11 IN PTR server6.example.com.
11 IN PTR server9.example.com.
10 IN PTR client9.example.com.
12 IN PTR client10.example.com.
13 IN PTR client11.example.com.
server6.example.com. IN A 172.25.6.11
www IN CNAME server6.example.com. (save and exit this file)
(vi) Check the DNS configuration files for syntax errors.
# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones
# name-checkzone <domain name><forward lookup zone>
Example : # named-checkzone example.com /var/named/slaves/named.forward
# named-checkzone <domain name><reverse lookup zone>
Example : # named-checkzone example.com /var/named/slaves/named.reverse
(vii) Give full permissions to the forward and reverse lookup zones.
# chmod 777 /var/named/slaves/named.forward
# chmod 777 /var/named/slaves/named.reverse
RatnakarPage 132
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(viii) Open /etc/sysconfig/network-scripts/ifcfg-eth0 and enter the DNS domain details if not present.
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 (go to last line and type as follows)
DNS 1=example.com (save and exit this file)
(ix) Add the DNS server IP address in /etc/resolve.conf
# vim /etc/resolve.conf
search <domain name>
namesever <IP address of the DNS server>
namesever <IP address of the secondary DNS server>
Example :
search example.com
nameserver 172.25.9.11
nameserver 172.25.6.11 (save and exit this file)
(x) Restart the DNS server deamons.
# service named restart (to restart the deamon in RHEL - 6)
# chkconfig named on (to enable the deamon at next boot time in RHEL - 6)
# systemctl restart named unbound (to restart the deamons in RHEL - 7)
# systemctl enable named unbound (to enable the deamons at next boot time in RHEL -7)
(xi) Add the DNS service to the IP tables and Firewall.
# setup (then select the Firewall configuration option and add DNS in RHEL - 6)
# service iptables restart (to restart the IP tables in RHEL - 6)
# service iptables save (to save the IP tables in RHEL - 6)
# firewall-cmd --permanent --add-service=dns (to add the DNS service to firewall in RHEL - 7)
# firewall-cmd --complete-reload (to reload the firewall in RHEL - 7)
(xi) Check whether the DNS is resolving or not.
# dig <DNS server fully qualified name> (to check the resolving from hostname to IP address)
# dig -x <DNS server IP address> (to check the resolving from IP address to hostname)
Example : # dig server6.example.com
# dig -x 172.25.6.11
(xii) Check the resolution with ping test.
# ping -c3 <secondary DNS server fully qualified domain name>(to check the ping test with hostname)
# ping -c3 <IP address of the secondary DNS server> (to check the ping test with IP address)
Example :
# ping -c3 server6.example.com
# ping -c3 172.25.6.11
(xiii) Check the resolution with host command.
# host <hostname> (to check the resolution with hostname)
# host <IP address> (to check the resolution with IP address)
Example :
# host server6.example.com
# host 172.25.6.11
(xiv) Check the resolution with nslookup command.
RatnakarPage 133
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 134
[Pick the date] [LINUX NOTES FOR LEVEL 2]
DHCP allows a computer to join in an IP-based network without having a pre-configured IP address. DHCP is a
protocol that assign unique IP addresses to devices, then releases and renews those addresses as devices
leave and rejoin in the network.
Internet Service Providers (ISPs) usually use DHCP to help customers join their networks with minimum setup
effort required. Likewise, home network equipment like broadband routers offers DHCP support to joining
home computers to Local Area Networks (LANs).
In simple terms DHCP is used to assign the IP addresses to the remote hosts automatically. First client
requests to the DHCP server, then DHCP server accepts the client's request and assign the next available IP
address to the requested DHCP client.
2. How the DHCP works?
The process of requesting the IP address from the DHCP clients and assign the IP address by the DHCP
server is called "D O R A".
(i) When we switch on the system with DHCP client, the client system sends the broadcast request looking
for a DHCP server to answer. This process is called DISCOVER or DHCP DISCOVER.
(ii) The router directs the DISCOVER packet to the correct DHCP server.
(iii) The server receives the DISCOVER packet. Based on availability and usage policies set on the server, the
server determines an appropriate address (if any) to give to the client. The server then temporarily reserves
that address for the client and sends back to the client an OFFER orDHCP OFFER packet with that address
information. The server also configures the client's DNS servers, WINS servers, NTP serves and
sometimes other services also.
(iv) Then the Client sends a REQUEST or DHCP REQUEST packet, letting the server know that it intends to
use the address.
(v) Then the server sends an ACK or DHCP ACK packet, conforming that the client has been given a lease
on the address for a server specified period of time.
3. What is the disadvantage to assign the Static IP address?
When a system uses a static IP address, It means that the system is manually configured to use a specific IP
address. One problem with static assignment, which can result from user error or inattention to detail,
occurs when two systems are configured with the same IP address. This creates a conflict that results in loss of
service. Using DHCP to dynamically assign IP addresses to avoid these conflicts.
4. What is the profile of DHCP?
Package : dhcp*
Script file : /etc/init.d/dhcpd
Configuration file : /etc/dhcp/dhcpd.conf
Deamon : dhcpd
Port numbers : 67 (dhcp server) and 68 (dhcp client)
Log messages : /var/log/messages
RatnakarPage 135
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(iii) Open the DHCP configuration file by # vim /etc/dhcp/dhcpd.conf command. This file is empty and we
have to copy the sample file from /usr/share/doc/dhcp-4.25/dhcpd.conf.example to the above location
by # cp -p /usr/share/doc/dhcp-4.25/dhcpd.conf.example /etc/dhcp/dhcpd.conf command.
(iv) Now open the above DHCP configuration file by # vim /etc/dhcp/dhcpd.conf command.
* Go to line number 47 and edit that line as below.
subnet <DHCP server Network ID> netmask <subnetmask of the this network> {
range <starting IP address><ending IP address>;
default-lease-time 600; (the minimum lease time to the client in seconds)
max-lease-time 7200; (he maximum lease time to the client in seconds)
}
Example :
subnet 172.25.0.0 netmask 255.255.255.0 {
range 172.25.9.50 172.25.9.100;
default-lease-time 600;
max-lease-time 7200;
}
* Go to line number 51 and edit that as below.
option routes <DHCP server IP address>;
option broadcast-address <DHCP server broadcast address>;
Example :
option routes 172.25.9.11;
option broadcast-address 172.25.9.255; (save and exit this file)
(v) Restart the DHCP services in RHEL - 6 and RHEL - 7.
# service dhcpd restart (to restart the DHCP service in RHEL - 6)
# chkconfig dhcpd on (to enable the DHCP service at next boot in RHEL - 6)
# systemctl restart dhcpd (to restart the DHCP service in RHEL - 7)
# systemctl enable dhcpd (to enable the DHCP service at next boot in RHEL - 7)
(vi) Add the DHCP service to the IP tables and Firewall.
In RHEL - 6:
# iptables -A INPUT -p udp -i eth0 --deport 67 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 --deport 67 -j ACCEPT
# iptables -A INPUT -p udp -i eth0 --deport 68 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 --deport 68 -j ACCEPT
# iptables -A OUTPUT -p udp -i eth0 --deport 67 -j ACCEPT
# iptables -A OUTPUT -p tcp -i eth0 --deport 67 -j ACCEPT
# iptables -A OUTPUT -p udp -i eth0 --deport 68 -j ACCEPT
# iptables -A OUTPUT -p tcp -i eth0 --deport 68 -j ACCEPT
In RHEL - 7 :
# firewall-cmd --permanent --add-service=dhcp
# firewall-cmd --complete-reload
(vii) # cat /var/lib/dhcpd/dhcpd.lease (to see the DHCP lease message database on DHCP server)
RatnakarPage 136
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 137
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* Then the above MAC address of the system will get the same IP address every time it booted.
RatnakarPage 138
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 139
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(e) If required open the web server document by # rpm -qad httpd command.
(f) Go to the configuration file directory by # cd /etc/httpd/conf.d
(g) Create the configuration for IP based hosting.
# vim /etc/httpd/conf.d/ip.conf
<VirtualHost <IP address of the web server> : 80>
ServerAdmin root@<hostname of the web server>
ServerName <hostname of the web server>
DocumentRoot /var/www/html
</VirtualHost>
<Directory "/var/www/html">
AllowOverride none
Require All Granted
</Directory> (save and exit this file)
Example :
# vim /etc/httpd/conf.d/ip.conf (create the configuration file)
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName server9.example.com
DocumentRoot /var/www/html
</VirtualHost>
<Directory "/var/www/html">
AllowOverride none
Require All Granted
</Directory>
(h) Go to document root directory and create the index.html file.
# cd /var/www/html
# vim index.html
<html>
<H1>
This is IP based Web Hosting
</H1>
</html> (save and exit this file)
(i) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(j) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# service iptables save
RatnakarPage 140
[Pick the date] [LINUX NOTES FOR LEVEL 2]
<Directory "/var/www/virtual">
AllowOverride none
Require All Granted
</Directory> (save and exit this file)
Example :
# vim /etc/httpd/conf.d/virtual.conf (create the configuration file)
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName www9.example.com
DocumentRoot /var/www/virtual
</VirtualHost>
<Directory "/var/www/virtual">
AllowOverride none
Require All Granted
</Directory>
(d) Go to named based virtual directory and create the index.html file.
# cd /var/www/virtual
# vim index.html
<html>
<H1>
This is Name based Web Hosting
</H1>
RatnakarPage 141
[Pick the date] [LINUX NOTES FOR LEVEL 2]
<Directory "/var/www/port">
AllowOverride none
Require All Granted
</Directory> (save and exit this file)
Example :
# vim /etc/httpd/conf.d/virtual.conf (create the configuration file)
<VirtualHost 172.25.9.11:8999>
ServerAdmin [email protected]
ServerName port9.example.com
DocumentRoot /var/www/port
RatnakarPage 142
[Pick the date] [LINUX NOTES FOR LEVEL 2]
</VirtualHost>
<Directory "/var/www/port">
AllowOverride none
Require All Granted
</Directory>
(d) Go to port based virtual directory and create the index.html file.
# cd /var/www/port
# vim index.html
<html>
<H1>
This is Port based Web Hosting
</H1>
</html> (save and exit this file)
(e) Generally port based web hosting requires DNS server. So, we can solve this problem by the following way.
For that open the /etc/hosts file enter the server name and IP addresses on both server and client.
# vim /etc/hosts
172.25.9.11 port5.example.com (save and exit this file)
(f) By default the web server runs on port number 80. If we want to configure on deferent port number, we
have to add the port number in the main configuration file.
# vim /etc/httpd/conf/httpd.conf
* Go to Listen : 80 line and open new line below this line and type as,
Listen : 8999 (save and exit this file)
(g) By default SELinux will allow 80 and 8080 port numbers only for webserver. If we use different port
numbers other than 80 or 8080 then execute the following command.
# semanage port -a -t http_port_t -p tcp 8999
(h) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(i) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 8999 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 8999 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent -add-port=8999/tcp
# firewall-cmd --complete-reload
(j) Go to client system, open the firefox browser and type as http://port9.example.com in address bar and
check the index page is displayed or not.
RatnakarPage 143
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(k) We can also access the website using elinks CLI tool.
# yum install elinks* -y (install the elinks package)
# elinks --dump port9.example.com (access the index page)
11. How to configure user authentication based web hosting?
It will ask user name and password to access this website. So, we have to provide http password.
(f) Go to the configuration file directory by # cd /etc/httpd/conf.d
(g) Create the configuration for user authentication based hosting.
# vim /etc/httpd/conf.d/userbase.conf
<VirtualHost <IP address of the web server> : 80>
ServerAdmin root@<hostname of the web server>
ServerName <hostname of the web server>
DocumentRoot /var/www/html
</VirtualHost>
<Directory "/var/www/html">
AllowOverride none
Require All Granted
AuthType Basic
AuthName "This site is protected"
AuthUserFile /etc/httpd/pass
Require User <user name>
</Directory> (save and exit this file)
Example :
# vim /etc/httpd/conf.d/userbase.conf (create the configuration file)
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName server9.example.com
DocumentRoot /var/www/html
</VirtualHost>
<Directory "/var/www/html">
AllowOverride none
Require All Granted
AuthType Basic
AuthName "This site is protected"
AuthUserFile /etc/httpd/pass
Require User raju
</Directory>
(h) Go to document root directory and create the index.html file.
# cd /var/www/html
# vim index.html
<html>
<H1>
RatnakarPage 144
[Pick the date] [LINUX NOTES FOR LEVEL 2]
<Directory "/var/www/html">
AllowOverride none
Require All Granted
Order Allow, Deny
Allow from 172.25.9.0 or 172.25.0 (allows 172.25.9 network or 172.25 network to access the websites)
RatnakarPage 145
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Deny from .my133t.org (deny all the systems of *.my133t.org domain to access the websites)
</Directory>
13. How to Redirect the website?
* Redirecting means whenever we access the website, it redirects to another website.
(a) Go to the configuration file directory by # cd /etc/httpd/conf.d
(b) Create the configuration for redirect based hosting.
# vim /etc/httpd/conf.d/rediect.conf
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName server9.example.com
DocumentRoot /var/www/html
Redirect / "http://www.google.com"
</VirtualHost>
<Directory "/var/www/html">
AllowOverride none
Require All Granted
</Directory> (save and exit this file)
(c) Go to document root directory and create the index.html file.
# cd /var/www/html
# vim index.html
<html>
<H1>
This is Redirect based Web Hosting
</H1>
</html> (save and exit this file)
(d) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(e) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --complete-reload
(f) Go to client system, open the firefox browser and type as http://server9.example.com in address bar
and check the redirection google web page is displayed or not.
RatnakarPage 146
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(g) We can also access the website using elinks CLI tool.
# yum install elinks* -y (install the elinks package)
# elinks --dump server9.example.com (access the index page)
* This website redirects to the google website.
14. How to configure the website with alias name?
(a) Go to the configuration file directory by # cd /etc/httpd/conf.d
(b) Create the configuration for alias based hosting.
# vim /etc/httpd/conf.d/alias.conf
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName server9.example.com
DocumentRoot /var/www/html
Alias /private /var/www/html/private
</VirtualHost>
<Directory "/var/www/html/private">
AllowOverride none
Require All Granted
</Directory> (save and exit this file)
(c) Create private directory in /var/www/html.
# mkdir /var/www/html/private
(c) Go to document root private directory and create the index.html file.
# cd /var/www/html/private
# vim index.html
<html>
<H1>
This is Alias based Web Hosting
</H1>
</html> (save and exit this file)
(d) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(e) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --complete-reload
RatnakarPage 147
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(f) Go to client system, open the firefox browser and type as http://server9.example.com/privae in
address bar and check the private or alias based web page is displayed or not.
(g) We can also access the website using elinks CLI tool.
# yum install elinks* -y (install the elinks package)
# elinks --dump server9.example.com/private (access the index page)
15. How to configure the directory based web hosting?
(a) Go to the configuration file directory by # cd /etc/httpd/conf.d
(b) Create the configuration for direct based hosting.
# vim /etc/httpd/conf.d/confidential.conf
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName server9.example.com
DocumentRoot /var/www/html
</VirtualHost>
<Directory "/var/www/html/confidential">
AllowOverride none
Require All Granted
</Directory> (save and exit this file)
(c) Create confidentialdirectory in /var/www/html.
# mkdir /var/www/html/confidential
(c) Go to confidential directory and create the index.html file.
# cd /var/www/html/confidential
# vim index.html
<html>
<H1>
This is Alias based Web Hosting
</H1>
</html> (save and exit this file)
(d) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(e) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --complete-reload
RatnakarPage 148
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(f) Go to client system, open the firefox browser and type as http://server9.example.com/confidential in
address bar and check the directory based web page is displayed or not.
(g) We can also access the website using elinks CLI tool.
# yum install elinks* -y (install the elinks package)
# elinks --dump server9.example.com/confidential (access the index page)
16. How to configure the web server to display the user defined home page not the index.html page?
Normally Apache will look the index.html as the home page by default. If the name changed it will display the
home page without configure that one. For that we can do the above as follows.
(i) Go to configuration file directory by # cd /etc/httpd/conf.d command.
(ii) Create a userpage configuration file.
# vim userpage.conf
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName server9.example.com
DocumentRoot /var/www/html
DirectoryIndex userpage.html
</VirtualHost>
<Directory "/var/www/html">
AllowOverride none
Require All Granted
</Directory> (save and exit this file)
(iii) Go to document root directory by # cd /var/www/html command.
(iv) # vim userpage.html
<html>
<H1>
This is userpage as home page web hosting
</H1>
</html> (save and exit this file)
(d) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(e) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --complete-reload
RatnakarPage 149
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(f) Go to client system, open the firefox browser and type as http://server9.example.com in address bar
and check the user defined web page is displayed or not.
(g) We can also access the website using elinks CLI tool.
# yum install elinks* -y (install the elinks package)
# elinks --dump server9.example.com (access the index page)
17. How to configure CGI based web hosting?
CGI content will change dynamically every time the client accessed it. Normal web server will not be used to
support this type of web hosting. To access these dynamic pages, we have to configure the web server as
".wsgi" server. The following steps will configure the CGI web server.
(a) Install the CGI package by # yum install mod_wsgi* -y command.
(b) Download or create the CGI script file in web server's document root directory.
Example : # cp webapp.wsgi /var/www/html
(c) Create the configuration file for CGI based web hosting.
<VirtualHost 172.25.9.11:80>
ServerAdmin [email protected]
ServerName webapp9.example.com
DocumentRoot /var/www/html
WSGIScriptAlias / /var/www/html/webapp.wsgi
</VirtualHost>
(d) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(e) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 80 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --complete-reload
(f) Go to client system, open the firefox browser and type as http://webapp9.example.com in address bar
and check the CGI based web page is displayed or not.
(g) We can also access the website using elinks CLI tool.
# yum install elinks* -y (install the elinks package)
# elinks --dump webapp9.example.com (access the index page)
18. What is secured web server?
RatnakarPage 150
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Secured web server means normal Apache web server with SSL support. In normal web server the data
communication is done in plain text format. So, there is no security for data because everyone can access the
data. If we want to provide security to the data, then we have to configure the web server with SSL support.
19. What is the profile of secured web server?
Package : mod_ssl
Configuration file : /etc/httpd/conf.d/ssl.conf
Private key location : /etc/pki/tls/private
Public key location : /etc/pki/tls/certs
Authentication certificate : /etc/pki/tls/certs
Port number : 443
* Private key extention is " . key " and public key extention is " . crt "
20. How to configure the secured web server?
(a) Install the web server and secure shell packages.
# yum install httpd* mod_ssl* -y command.
(b) Download the private key and public certificates.
# cd /etc/pki/tls/private
# wget http://classroom.example.com/pub/tls/private/server<no.> . key
# cd /etc/pki/tls/certs
# wget http://classroom.example.com/pub/tls/certs/server<no.> . crt
# wget http://classroom.example.com/pub/example-ca.crt
(c) Create the configuration file for secured web server.
# vim /etc/httpd/conf.d/https.conf
<VirtualHost 172.25.9.11:443>
ServerAdmin [email protected]
ServerName server9.example.com
DocumentRoot /var/www/html
</VirtualHost>
(d) We have to copy 7 lines from ssl.conf file to https.conf file.
# vim -O ssl.conf https.conf
Copy the line numbers 70, 75, 80, 93, 100, 107, 116 copy and paste them in https.conf file.
So, after copied those line the https.conf file should be as below.
<VirtualHost 172.25.9.11:443>
ServerAdmin [email protected]
ServerName server9.example.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/server9.crt
SSLCertificateKeyFile /etc/pki/tls/private/server9.key
#SSLCertificateChainFile /etc/pki/tls/certs/example-ca.crt
DocumentRoot /var/www/html
RatnakarPage 151
[Pick the date] [LINUX NOTES FOR LEVEL 2]
</VirtualHost>
<Directory "/var/www/html">
AllowOverride
Require All Granted
</Directory> (save and exit this file)
(e) Go to document root directory by # cd /var/www/html command.
(f) # vim index.html
<html>
<H1>
This is a secured web hosting
</H1>
</html> (save and exit this file)
(g) Restart the web server deamon.
# service httpd start (to start the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the service at next boot in RHEL - 6)
# systemctl restart httpd (to start the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the service at next boot in RHEL - 7)
(h) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 443 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 443 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --complete-reload
(i) Go to client system, open the firefox browser and type as https://server9.example.com/ in address bar
and check the secured web page is displayed or not.
21. How to generate our own private and public keys using crypto-utils package?
(i) Install the package by # yum install crypto-utils* -y command.
(ii) Create our own public and private keys by # genkey <hostname of the server> command.
Example : #genkey server9.example.com (one window will be opened and we have to enter the details)
Click on Next ---> Don't change the default size ---> Next ---> No --->The keys are generated in
their directories.
Other useful commands :
# httpd -t (to check the web server configuration file for syntax errors)
A mail server (sometimes also referred to an e-mail server) is a server that handles and delivers e-mail over a
network, usually over the Internet. A mail server can receive e-mails from client computers and deliver them to
other mail servers. A mail server can also deliver e-mails to client computers. A client computer is normally the
computer where you read your e-mails, for example your computer at home or in your office. Also an advanced
mobile phone or Smartphone, with e-mail capabilities, can be regarded as a client computer in these
circumstances.
2. How many types of mail servers available in Linux?
There are two types of mail servers.
(i) Sendmail server (default in RHEL - 5, available in 6 and 7)
(ii) Postfix (default in RHEL - 6 and 7)
These both mail server are used to send and receive the mails, but we cannot used both mail servers at a time
ie., we have to use only one server at a time. These mail servers are used as CLI mode. Outlook express in
windows is used to send or receive the mails. Thunderbird is used to send or receive the mails using GUI
mode in Linux. # mail is the command used to send the mails in CLI mode.
3. What are MUA, MTA, SMTP, MDA and MRAs?
MUA :
MUA stands for Mail User Agent. It is the e-mail client which we used to create-draft-send emails.
Generally Microsoft Outlook, Thunderbird, kmail, ....etc., are the examples for MUAs.
MTA :
MTA stands for Mail Transfer Agent. It is used to transfer the messages and mails between senders and
recipients. Exchange, Qmail, Sendmail, Postfix, ....etc., are the examples for MTAs.
SMTP:
SMTP stands for Simple Mail Transfer Protocol. It is used to transfer the messages and mails between the
MTAs.
MDA :
MDA stands for Mail Delivery Agent. It is a computer software component that is responsible for the delivery
of e-mail messages to a local recipient's mailbox. Within the Internet mail architecture, local message delivery
is achieved through a process of handling messages from the message transfer agent, and storing mail into the
recipient's environment (typically a mailbox).
MRA :
MRA stands for Mail Retrieval Agent. It is a computer application that retrieves or fetches e-mail from a
remote mail server and works with a mail delivery agent to deliver mail to a local or remote email mailbox.
MRAs may be external applications by themselves or be built into a bigger application like an MUA. Significant
examples of standalone MRAs include fetchmail, getmail and retchmail.
4. What is the profile of mail server?
Package : sendmail (in RHEL - 5, 6 and 7) or postfix (in RHEL - 6 and 7).
Configuration file : /etc/postfix/main.cf, /etc/dovecot/dovecot.conf
Log file : /var/log/mail.log
User's mails location : /var/spool/mail/<user name>
root user's mail location : /var/spool/mail/root
Deamons : postfix
RatnakarPage 153
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Port number : 25
5. How to configure the mail server?
The pre-requisite for mail server is DNS. ie., Domain Naming System should be configured first.
(i) Check the hostname of the server by # hostname command.
(ii) Install the mail server package by # yum install postfix* dovecot* -y command.
(iii) Open the mail configuration file and at last type as below.
# vim /etc/postfix/main.cf
myhostname = server9.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = $myhostname, localhost
mydestination = $myhostname, localhost.$localdomain, localhost, $mydomain
home_mailbox = Maildir / (save and exit this file)
(iv) Open the another configuration file and at last type as below.
# vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp (save and exit this file)
(v) Restart the mail server services.
# service postfix restart (to restart the postfix deamon in RHEL - 6)
# service dovecot restart (to restart the dovecot deamon in RHEL - 6)
# chkconfig postfix on (to enable the postfix deamon at next boot in RHEL - 6)
# chkconfig dovecot on (to enable the dovecot deamon at next boot in RHEL - 6)
# systemctl restart postfix doveco0t (to restart the postfix and dovecot deamons in RHEL - 6)
# systemctl enable postfix dovecot (to enable the deamons at next boot in RHEL - 6)
(vi) Add the service to the IP tables and firewall.
In RHEL - 6 :
# iptables -A INPUT -i eth0 -p tcp -m tcp --deport 25 -j ACCEPT
# iptables -A OUTPUT -i eth0 -p tcp -m tcp --deport 25 -j ACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-port=25/tcp
# firewall-cmd --complete-reload
(vii) Send a test mail to the user.
# mail -s testmail raju
Hi this is a test mail
ok bye... bye .... (exit and send the mail by Ctrl + d )
(viii) Login as raju user and check the mail.
# su - raju
$ ls
$ cd Maildir
$ ls
RatnakarPage 154
[Pick the date] [LINUX NOTES FOR LEVEL 2]
$ cd new
$ cat <mail name>
6. How to configure mail server as null client in RHEL - 7 ?
(i) Open the configuration file and at last type as below.
# vim /etc/postfix/main.cf
relayhost = [client9.example.com]
inet_interfaces = loopback-only
mynetworks = 127.0.0.0/8 [ : : 1]/128
myorigin = server9.example.com
mydestination =
local_transport = error : local delivery disabled (save and exit this file)
(ii) Restart the postfix deamons.
# systemctl restart postfix
# systemctl enable postfix
(iii) Add the postfix service to Firewall.
# firewall-cmd --permanent --add-port=25/tcp
# firewall-cmd --complete-reload
(iv) Send a test mail to the user.
# mail -s testmail raju or # mutt -s testmail raju
Hi this is a test mail
ok bye... bye .... (exit and send the mail by Ctrl + d )
(v) Login as raju user and check the mail.
# su - raju
$ ls
$ cd Maildir
$ ls
$ cd new
$ cat <mail name>
Other useful commands :
* To send a mail to the local system, no need to configure the mail server.
* To send a mail to the remote system, then only we have to configure the mail server.
# mail [email protected] (to send the mail to the raju user of the server9)
type the message whatever you want (press Ctrl + d to exit and send the mail)
# su - raju (to switch to the raju user)
$ mail (to check the mails of the raju user)
N abcd
N efgh
N ijkl
N mnop (there are four mails in the mail box)
& 1 (to read the 1st mail)
RatnakarPage 155
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* If the mail is new one then 'N' letter is appears before the mail. If it is already seen then there is no
letter before the mail.
* press 'q' to quit the mail utility.
# mail or mutt -s " hello " <user name1><user name2><user name3>
type the matter whatever you want (press Ctrl + d to exit and send the mail to 3 users)
$ mail (to see all the mail in the mail box)
&<type the mail number> (to read the specified mail by it's number)
& r (to send the replay mail to that user)
& p (to send the mail to the printer for printing)
& w (to write the contents of the mail into a file, ie., save the contents of the mail ina file)
& q (to quit the mail box)
& d (to delete the mail)
& d <mail number> (to delete the specified mail by it's number)
& d 1-20 (to delete the mails from 1 to 20 numbers)
# mail -s "hello" <user name>@<servername> . <domain name> (to send the mail to the remote system)
# mailq (to see the mails in the queue)
* If the mail server is not configured or not running, then the sent mails will be in the queue.
# mail -s "hello" <user name1><user name2><<File name> (send the mail with attached file to
the 2 users)
# postfixcheck (to verify the mail configuration file for syntax errors)
RatnakarPage 156
[Pick the date] [LINUX NOTES FOR LEVEL 2]
1. What is storage?
The memory where we can store the data, such as files, directories, ...etc., is called the storage. Storage is
mainly two types. (i) Local storage and (ii) Remote Storage.
(i) Local storage :
Local storage is a storage which is directly connected to our system and ready to use.
Example : Local hard disk, local pen drive, DAS (Direct Access Storage) ... etc.,
(ii) Remote storage :
The storage which is not connected to our system directly but allotted some space to our system in remote
location is called remote storage.
Example : iSCSI (Internet Small Computer System Interface), SAN (Storage Area Network), NAS (Network
Area Storage)
2. What is iSCSI and explain it?
iSCSI is a way of connecting storage devices over a network using TCP/IP. It can be used over a local area
network (LAN), a wide area network (WAN), or the Internet.
iSCSI devices are disks, tapes, CDs, and other storage devices on another networked computer that you can
connect to. Sometimes these storage devices are part of a network called a Storage Area Network (SAN).
In the relationship between our computer and the storage device, our computer is called an initiator because
it initiates the connection to the device, which is called a target.
iSCSI provides Remote Block or File Storage. Most data centers keep their storage in centralised SAN racks.
iSCSI provides an inexpensive alternative to proprietary SAN hardware.
3. What is the terminology of iSCSI?
iSCSI supports sending SCSI commands from clients (initiators) over IP to SCSI storage devices (targets) on
remote systems (servers). iqn is a iSCSI qualified name or number.
The format of iqn is "iqn.yyyy-mm.<domain name in reverse order>label is used to identify initiators and
targets communicate through port number 3260.
4. What is the profile of iSCSI?
Package : iscsi* (for RHEL-6), target* (for RHEL-7 server) and iscsi-utils* (for RHEL-7
Client)
Configuration files : /etc/tgt/target.conf (for RHEL - 6) and /etc/target/saveconfig.json (for RHEL - 7)
Deamons : tgtd (for RHEL-6) and target (for RHEL-7 server) and iscsi, iscsid (for RHEL-7)
RatnakarPage 157
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 158
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# chkconfig tgtd on (to enable the iSCSI deamon at next boot in RHEL - 6)
# systemctl restart target (to start the target deamon in RHEL - 7)
# systemctl enable target (to enable the target deamon at next boot in RHEL - 7)
(vi) # tgt-admin --show (to check the iSCSI configuration in RHEL - 6)
(vii) Add the iSCSI service and port number to the IP tables and firewall.
In RHEL - 6 :
# iptables-I INPUT -p tcp-m tcp --dport3260 -jACCEPT
# iptables-O OUTPUT -p tcp-m tcp --dport3260 -jACCEPT
# service iptables save
# service iptables restart
In RHEL - 7 :
# firewall-cmd --permanent --add-port=3260/tcp
# firewall-cmd --complete-reload
6. How to configure the iSCSI client?
(i) Install iscsi-initiator-utils package on the client by # yum install iscsi-initiator-utils* -y command in RHEL-6.
Install the iSCSI packages by # yum install iscsi-utils* -y command in RHEL - 7.
(ii) Discover the target LUN’s exported by server using following command. It will provide iqn name with of LUN
associated with given ip address.
# iscsiadm -m discovery -t sendtargets -p <IP address of the server> (in RHEL - 6)
# iscsiadm --mode discoverydb --type sendtargets --portals <IP address of the server) (in RHEL -
7)
(iii) Open the iscsi initiator file and put an entry of the above discovered lun number in RHEL - 7 only.
# vim /etc/iscsi/initiatorname.iscsi (go to last line and type as below)
Initiatorname=iqn.2015-06.com.example:server9 (save and exit this file)
(iv) Restart and enable the iSCSI client side deamons.
# service iscsi restart (to restart the iscsi client deamon in RHEL - 6)
# chkconfig iscsi on (to enable the iscsi client deamon at next boot in RHEL - 6)
# systemctl restart iscsid iscsi (to restart the iscsi client deamons in RHEL - 7)
# systemctl enable iscsid iscsi (to enable the iscsi client deamons at next boot in RHEL - 7)
(v) To connect iSCSI target we can use following command , we need to mention server ip and iqn name.
In RHEL - 6 :
# iscsiadm -m node -T iqn.2015-06.com.example:server9.target1–p <IP address of the server>login
In RHEL - 7 :
# iscsiadm --mode node --targetname iqn.2015-06.com.example:server9 --portal <IP address of the
server> : 3260 --login
(vi) Check the new remote disk name by # fdisk -l command.
(vii) Create the required size partition using # fdisk, # partprobe commands.
(viii) Create the required type of file systems by # mkfs.ext4 <above created partition name> command.
(ix) Create a mount point for the above file system by # mkdir /mnt/iscsi command.
(x) Open the /etc/fstab file and put en entry of the above file system information.
# vim /etc/fstab
RatnakarPage 159
[Pick the date] [LINUX NOTES FOR LEVEL 2]
<partition name> or <UUID> /mnt/iscsi ext4 _netdev 0 0 (save and exit this file)
(xi) Mount the all the partitions which are having entries in /etc/fstab file by # mount -a command.
(xii) Check all the mounted file systems by # df -hT command.
(xiii) To disconnect iSCSI target we can use following commands. Don't forget that logout from the target.
In RHEL - 6 :
# iscsiadm -m node -T iqn.2015-06.com.example:server9.target1–p <IP address of the server>logout
In RHEL - 7 :
# iscsiadm --mode node --targetname iqn.2015-06.com.example:server9 --portal <IP address of the
server> : 3260 --logout
(xiv) Restart the client system by # init 6 command.
(xv) After reboot check the remote file system by # df -hT command.
RatnakarPage 160
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 161
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 162
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 163
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 164
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 165
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* Whenever we change the contents of the /etc/rsyslog.conf file, then we have to restart the rsyslog service.
* There are 7 types of priority messages. We can change the default destination of those log files. For that
open rsyslog server configuration file and we have enter the rules as follows.
# vim /etc/rsyslog.conf
<priority type> . <priority name> <new destination of the log files> (save and exit this file)
# logger <type any text> (to send that text into /var/log/messages files and to test whether
logging service is running
or not)
# logrotate (to create the log files with datewise)
* Generally in log messages the fields are,
Date & Time : From which system : command name or change : Execution of the command
# yum install tmpwatch -y (to install the tmpwatchpackage to execute the below command)
# tmpwatch (to monitor the /tmp directory)
# logwatch (to monitor the log messages)
# yum install watch -y (to install the watch package to execute the below command)
# watch <command> (to watch the specified command results continuously)
# mkdir mode=755 /ram (to give the permissions to the directory while creating that directory)
# journalctl (it tracks all the log files between two different timings and save by default
in /run/log location)
* /run/log is mounted on tmpfs file system ie., if the system is rebooted the whole information in that
location will be deleted or erased.
RatnakarPage 166
[Pick the date] [LINUX NOTES FOR LEVEL 2]
IP tables is a command-line firewall utility that uses policy chains to allow or block traffic. When a connection
tries to establish itself on your system, iptables looks for a rule in its list to match it to. If it doesn’t find one, it
resorts to the default action. IP tables almost always comes pre-installed on any Linux distribution.
We can update/Reinstall the IP tablespackage by # yum install iptables* -y command.
2. What are the types of firewalls?
There are four types of firewalls.
(i) Packet firewalls :
● It works atPhysical, Data Link and Network Layers.
● It works fast and efficiently.
● It treats each packet in isolation.
(ii) Statefull firewalls :
● It identifies a packets connection state.
● It maintains packets history in the state tables.
(iii) Application layer firewalls :
● It inspects and filter packets on OSI layer upto Application Layer.
● It identifies if protocols are being misused.
(iv) Proxies firewalls :
● It acts as an intermediary.
● It operates at Application Layer.
● It won't allow direct connections.
3. What are the tables maintained by IP tables?
Normally IP tables maintain 3 tables.
(i) INPUT table:
This chain handles all packets that are addressed to your server and also to control the behaviour for
incoming connections. For example, if a user attempts to SSH into your PC/server, iptables will attempt to
match the IP address and port to a rule in the input chain.
(ii) OUTPUT table :
This chain contains rules for traffic created by your server. This chain is used for outgoing connections. For
example, if you try to ping google.com, iptables will check its output chain to see what the rules are
regarding ping and google.combefore making a decision to allow or deny the connection attempt.
(iii) FORWARD table :
This chain is used for incoming connections that aren’t actually being delivered locally. Think of a router –
data is always being sent to it but rarely actually destined for the router itself; the data is just forwarded to
its target. Unless you’re doing some kind of routing, NATing, or something else on your system that requires
forwarding, you won’t even use this chain.This chain is used to deal with traffic destined for other servers
that are not created on your server. This chain is basically a way to configure your server to route requests to
other machines.
4. What are the meanings of REJECT, DROP and ACCEPT ?
REJECT :
REJECT means server receives the FTP request from the specified IP address and rejects that request and
also send the acknowledgement.
RatnakarPage 167
[Pick the date] [LINUX NOTES FOR LEVEL 2]
DROP :
DROP means server receives the FTP requests from the specified IP address and drop the request without
sending any acknowledgement.
ACCEPT :
ACCEPT means server receives the FTP requests from the specified IP address and allow that system for
FTP services.
5. What is the configuration file of IP tables and what are the options available in IP tables command?
/etc/sysconfig/iptables is the configuration file of IP tables.
# iptables <options><chain> firewall-rule (to execute the IP tables)
The options are as follows.
-A -----> Add or append the rule.
-p -----> Indicates the protocol for that rule (tcp, udp, icmp, ....etc.;).
-s -----> Indicates the source of the packet (IP address, Network ID or Hostname).
-d ----->Indicates the destination of the packet.
-j -----> 'Jump to target' indicates the interface through which the incoming packets are coming through
the INPUT , FORWARD and PREROOTING chain.
-o -----> 'Output Interface' indicates the interface through which the outgoing packets are sent through
the INPUT, FORWARD and PREROOTING chain.
-sport or -source-port -----> Source port for -p tcp or -p udp.
-dport or -destination-port -----> Destination port for -p tcp or -p udp.
6. How to allow a ping from outside to inside and inside to outside?
# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
7. In how many ways can we protect the network?
There are 4 ways to protect the network.
(i) SELinux
(ii) IP tables
(iii) Firewalld
(iv) TCP wrappers
IP tables and firewalld both are used to protect our systems services from outside. But we can use only one
way at a time.
8. How to configure the firewalld?
(i) Install the firewalld package by # yum install firewalld* -y command.
(ii) Check whether the firewalld package is installed or not by # rpm -qa firewalld command.
(iii) Check the status of the firewalld by executing the below commands.
# systemctl status firewalld or # firewall-cmd --status
Examples of IP tables commands :
# service iptables status (to check the IP tables status)
# service iptables start (to start the IP tables)
RatnakarPage 168
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 169
[Pick the date] [LINUX NOTES FOR LEVEL 2]
* Default is for every 2 seconds. -d option highlights the change. Press Ctrl+c to quit from the above
command.
# ping -a 192.168.10.1 (to ping the IP address with audiable ping ie., it makes noises)
# shred -n 5 trail.txt (to over write the trail.txt file five times default is 3 times)
# shred -u 5 trail.txt (to remove a file after over writing)
* This shed tool may not work in journaling or RAID file systems.
# file <file name> (to know what type file is that)
# mtr <IP address> (to check the connection between the source and the destinations)
* The above command gives the report continuously until the user press Ctrl+c.
# htop (it is an improved top command and it allows to scroll vertically or horizontally)
# logsave filelist.txt ls -l (to capture the output of any command and stores it in a file along with
the starting and ending time of the command)
# look "printf" avltree.c (to display all the lines in a file that start with a particular string and
performance of this command is more than grep)
# stat <file name> (to display the status of a file or file system like absolute path of the files, the no of
blocks used by the file, the I/O block size, inode access specifier, access time, time of modification, ....etc)
# mc (it is a powerful text based file manager and it is a directory browsing tool and allows to
see thecontents of the archived files, ...etc.;)
* In RHEL - 6 we have to write the rules and regulations to allow or deny the system but, in RHEL - 7 we have
enable or disable the firewalld options only.
# firewall-config (to manage the firewalld services using graphical user mode)
# firewall-cmd --get-zones (to display all available zones)
# firewall-cmd --get-default-zone (to check the default zone, the default zone is public zone)
# firewall-cmd --set-default-zone=work (to activate the work zone, nothing but changing default
zone temporarily)
# firewall-cmd --permanent --set-default-zone=work (to set the default zone as work permanently)
# firewall-cmd --get-activate-zones (to display which zone is an active with IP address and interface eth0)
# firewall-cmd --add-service=172.25.0.0/24 --zone=public (to add the source to the public zone temporarily)
# firewall-cmd --get-activate-zone (to see the default zone which is activated)
# firewall-cmd --permanent -add-source=172.25.0.0/24 --zone=public
(to add the IP address to public zone permanently)
# firewall-cmd --remove -souce =172.25.0.0/24 --zone=public (to remove the iP address from public zone
temporarily)
# firewall-cmd --permanent --remove-source=172.25.0.0/24 --zone=public
(to remove the iP address from public zone permanently)
# firewall-cmd --add-interface=eth1 --zone=public (to change the interface or add interface to the
public zone temporarily)
# firewall-cmd --permanent --add-interface=eth1 --zone=public (to change the interface or add
interface to the public zone permanently)
# firewall-cmd --get-active-zones (to see the activated zones)
* All rules what we have written are temporary. If the system is rebooted then all changed values are revert
RatnakarPage 170
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 171
[Pick the date] [LINUX NOTES FOR LEVEL 2]
26. Virtualization
1. What is virtualization?
Virtualization allows multiple operating system instances to run concurrently on a single computer;it is a means
of separating hardware from a single operating system. Each “guest” OS is managed bya Virtual Machine
Monitor (VMM), also known as a hypervisor. Because the virtualization system sitsbetween the guest and the
hardware, it can control the guests’ use of CPU, memory, and storage,even allowing a guest OS to migrate from
one machine to another.
2. What are types of virtualizations available in Linux?
RHEL - 5 : RHEL - 6 & 7 :
xen kvm
64 bit 64 bit
VT-Enabled VT-Enabled
Intel/AMD Intel/AMD
2 GB RAM 2 GB RAM
6 GB Hard disk 6 GB Hard disk
3. What are the packages of virtualization and how to install the packages?
(i) qemu (It is used to provide user level KVM virtualization and disk image also)
(ii) virt (It is used to provide virtualization software)
(iii) libvirt (It is used to provide the libraries for virtualization software)
(iv) python (This package provides the host and server libraries for interacting with Hypervisor and
Host system)
# yum install qemu* virt* libvirt* python* -y (to install the virtualization softwares)
4. How to start the virtualization manager and how to create a new virtual machine?
(i) Go to Applications -----> System Tools -----> Virtual Machine Manager
(ii) Vitual Machine Manager is used to check and displays the available virtual machines. It is also used to
create the new virtual machines.
(iii) To create a new virtual machine first click on monitor icon, then enter the virtual machine name, Select
Local and Select Forward.
RatnakarPage 172
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(iv) Click on Browse Local, Select the guest O/S " . iso " image file and Select Forward.
5. What are the packages of Virtualization Hypervisor and how to install the packages?
(i) "virtualization hypervisor" (provides the foundation to host virtual machines includes the libvirt and
qemu- kvm package)
(ii) "virtualization client" (provides the support to install and manage virtual machines includes
virsh, virt-install, virt-manager, virt-top and virt-viewer packages)
(iii) "virtualization tools" (provides tools for offline management of virtual machines includes the
libguestfs package)
(iv) "virtualization platform" (provides an interface to access and control virtual machines includes the
libvirt, libvirt-client and virt-who packages)
Installation of Virtualization Hypervisor :
# yum group install "virtualization hypervisor" "virtualization client" "virtualization tools"
"virtualization platform" -y
RatnakarPage 173
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# pushcourse all <system hostname> (to send the server and client virtual machines to the
specified system)
RatnakarPage 174
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(8) I also supports process related issues like memory utilization full (90%), CPU utilization full (90%) and
file system full, ...etc.,
(9) I also support for system troubleshooting issues like system not responding, node down, starting and
stopping services and deamons.
(b) Coming to Veritas Volume Manager : (from the last 1 year)
(1) We get requests from production, database, Q A people like creating volumes, file system creation,
increase and (or) decrease the volume sizes, provide permissions, redundancy, put the volume into
cluster to provide high availability,
(2) sometimes destroy or remove the volumes, backup and restore whenever necessary,
(3) We also get some troubleshooting issues like volume not started, volume not accessible, file system
crashed, mount point deleted, disks failed, volume manager deamons are not working, configuration
files missed, crashed, disk groups not deporting and not importing, volume started but users are
unable to access file systems on those volumes,...etc.,
(c) Coming to Veritas Cluster : (from 6 months)
(1) We get requests like node adding, resource adding, service group adding, adding service groups and
resources to existing service groups, mount points adding, adding NIC cars, IP addresses, adding
volumes, disk groups, freezing and unfreezing services groups and also get some troubleshooting
issues like cluster not running, if resources faulted then restart the service groups, communication
failed between two systems, Gab is not running, llt not running, and configuration files main.cf
crashed or missed and resources are not started, ... etc.
(d) I also write small scripts to perform internal routine jobs, document preparation, handover mails
checking, how many tickets issued, how many tickets solved and how many jobs pending, ....etc.,
(e) I also supports in application deployment, database deployment and others.
3. What are the tools you are using?
(i) netstat, vmstat, iostat, nmap and top for performance monitoring tools.
(ii) cron and at for job scheduling.
(iii) Remedy tool for ticketing system.
(iv) Veritas Netbackup, Tivoli, .... etc., for backing purpose
(v) Outlook for internal mailing.
4. What are the storage boxes using?
(i) NetApps, VMC, Clarian and EMC2.
(ii) Emulex, Qlogic (HBA cards).
5. What are the Applications are you using?
(i) Databases (Oracle 10g, 11g and Mysql).
(ii) Oracle Applications like ERP packages (Oracle 11i and 12).
(iii) SAP applications.
(iv) Datawarehousing, ....etc.,
6. What is your company hierarchy?
Me -----> Team Lead or Tech Lead -----> Manager -----> Delivery Manager -----> Asia head
7. What level are you supporting?
Linux Administrator as Level 2.
RatnakarPage 175
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 176
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 177
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(vii) The crontab will not inform the failed backup. But Veritas Net backup and Tivoli tools will send messages
about backup fails and why the backup is failed because these tools will generate the failed backup log files.
(viii) If any files are open in the production server, the backup may be failed. So, check any files opened or not
by # lsof or # fuser -cv <file system> commands.
(ix) Sometimes the script in Veritas Net backup or Tivoli tools may be corrupted or not running, then restore
those scripts from backup or we need manually deport & import and take backup.
(x) Sometimes backup failed due to backup port no. 13782 may be not working or in blocked state. It can be
checked by # netstat -ntulp | grep 13782 command.
(xi) If the media server and production server are not in the same domain, then backup may be failed. (ie.,
production server domain name may be changed but no intimation to backup team about that change, so
media server is in another domain).
Backup Procedure :
(i) Deport the disk group on production server.
(ii) Import the disk group on backup (media) server.
(iii) Join the disk group with media server.
(iv) Sync the data with production server.
(v) Take the backup.
(vi) split the disk group from media server.
(vii) Join the disk group with production server.
(viii) Deport the disk group from media server.
(ix) Import the disk group on production server.
Backup policy :
(i) Complete (full) backup (every month ie., once in a month).
(ii) Incremental backup (Daily).
(iii) Differential or cumulative backup (every week end).
22. How to troubleshoot if the file system is full?
(i) First check whether the file system is O/S or other than O/S.
(ii) If it is other than O/S, then inform to that respective teams to house keep the file system (ie., remove the
unnecessary files in those file system).
(iii) If not possible to house keep then inform to different teams (raise the CRQ (Change Request)) for increasing
the file system.
(a) First take business approval and raise the CRQ to monitoring team to ignore the alerts from the system,
stop the application team to stop the application and database team to stop the database.
(b) Normally team lead or tech lead or manager will do this by initiate the mail thread.
(c) We will do this on weekend to reduce the business impact.
(iv) First take a backup of the file system then unmount the file system.
(v) Remove that partition and again create that file system with increased size, then mount again that file
system and restore the backup.
(vi) If the file system belongs to system log files or other log files and not to delete then they requested us to
provide one Repository server (only for log files). Normally one script will do automatically redirect the log
files to that repository server.
RatnakarPage 178
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(vii) Sometimes we will delete file contents not the files to reduce the file sizes. For that we execute the
command # cat /dev/null ><file name with path> ie., nullifying the files.
(ix) If it is root file system or O/S file system,
(a) may be /opt full or may be /var full or may be /tmp full
(b) In /var/log/secure or /var/log/system or /var/tmp files may be full. If those files are important then
redirect them to other central repository server or backup those files and nullifying those files.
(c) If /home directory is present in root ( / ) file system then this file system full will occur. Generally
/home will be separated from root file system and created as separate /home file system. If
/home is in root ( / ) as a directory then create a separate file system for /home and copy those files
and directories belongs to /home and remove that /home directory.
(d) If root ( / ) is full then cannot login to the system. So, boot with net or CDROM in single user mode and
do the above said.
(x) Normally if file system is other than O/S then we will inform to that respective manager or owner and take
the permissions to remove unnecessary files through verbal permission or CRQ .
23. CPU utilization full, how to troubleshoot it?
(a) Normally we get these scenarios on weekends because backup team will take heavy backups.
(b) First check which processes are using more CPU utilization by # top and take a snap shot of that user
processes and send the snap shot and inform to that user to kill the unnecessary process.
(c) If those processes are backups then inform to the backup team to reduce the backups by stopping some
backups to reduce the CPU utilization.
(d) Sometimes in peak stages (peak hours means having business hours) CPU utilization will full and get back to
the normal position automatically after some time (within seconds). But ticket raised by monitoring team.
So, we have to take a snap shot of that peak stage and attach that snap shot to the raised ticket and close
that ticket.
(e) Sometimes if heavy applications are running and not to kill (ie., business applications), then if any spare
processor is available or other low load CPUs available then move those heavy application processes to
those CPUs.
(d) If CPUs are also not available then if the system supports another CPU then inform to the data centre people
or CPU vendor to purchase new CPU though Business approval and move some processes to the newly
purchased CPUs.
24. How to troubleshoot when the system is slow?
(a) System slow means the end users response is slow.
(b) Check the Application file system, CPU utilization, memory utilization and O/S file system utilization.
(c) If all are ok, then check network statistics and interfaces whether the interfaces are running in full duplex
mode or half duplex mode and check whether the packets are missing. If all are ok from our side then,
(d) Inform to network team and other respective teams to solve this issue.
25. How to troubleshoot if the node is down?
(a) Check pinging the system. If pinging, then check whether the system is in single user mode or not.
(b) If the system is in single user mode then put the system in multi user mode ie., default run level by
confirming with our team whether system is under maintenance or not.
RatnakarPage 179
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(c) Check in which run level the system is running. If it is in init 1 it will not be able to ping. If it is in init s then it
will ping.
(d) In this situation also if it is not pinging then try to login through console port. If not possible then inform to
data centres people to hard boot the system.
(d) If connected through console port then we may get the console prompt.
26. How to troubleshoot if the memory utilization full?
(a) Check how much memory is installed in the system by # dmidecode -t memory command.
(b) Check the memory utilization by # vmstat -v command.
(c) Normally application or heavy backups utilize more memory. So, inform to application team or backup
team or other teams which team is utilizing the more memory to reduce the processes by killing them or
pause them.
(d) Try to kill or disable or stop the unnecessary services.
(e) If all the ways are not possible then inform to team lead or tech lead or manager to increase the memory
(swap space). If it is also not possible then taking higher authority's permissions to increase the physical
memory. For those we contact the server vendor and co-ordinate with them through data centre people to
increase the RAM size.
27. How to replace the failed hard disk?
(a) Check whether the disk is failed or not by # iostat -En | grep -i hard/soft command.
(b) If hard errors are above 20 then we will go for replacement of the disk.
(c) If the disk is from SAN people then we will inform to them about the replacement of the disk. If it is internal
disk then we raise the CRQ to replace the disk.
(d) For this we will considered two things.
(i) whether the system is within the warranty.
(ii) without warranty.
(e) We will directly call to the toll free no. of the system vendor and raise the ticket. They will issue the case no.
This is the no. we have to mention in all correspondences to vendor regarding this issue.
(f) If it is having warranty they asks rack no. system no. and other details and replace the hard disk with co-
ordinate of the data centre people.
(g) If it is not having warranty, we have to solve the problem by our own or re-agreement to extend the
warranty and solve that problem.
28. How to replace the processor?
(a) Check the processor's status using # lscpu or # dmidecode -t processor commands.
(b) If it shows any errors then we have to replace the processor.
(c) Then raise the case to vendor by toll free no. with higher authorities permission.
(d) The vendor will give case no. for future references.
(e) They also asks rack no. system no. of the data centre for processor replacement.
(f) We will inform to the Data centre people to co-ordinate with vendor.
29. How replace the failed memory modules?
Causes :
(a) The system is continuously rebooting .
RatnakarPage 180
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(b) When in peak business hours, if the heavy applications are running the system get panic and rebooted.
This is repeating regularly.
Solution :
(a) First we check how much RAM present in the system with # dmidecode -t memory command.
(b) Then we raise the case to vendor with the help of higher authorities.
(c) Then the vendors will provide the case no. for future reference.
(d) They will also asks rack no. system no. to replace the memory.
(e) we will inform the data centre people to co-ordinate with the vendor.
30. What is your role in DB patching?
In Database patching the following teams will be involved.
(i) Database Administrator (DBA) team.
(ii) Linux Administrators team.
(iii) Monitoring team.
(iv) Application team.
(i) DBA team :
This is the team to apply the patches to the databases.
(ii) Linux team :
This team is also involved if any problems occur. If the database volume is having a mirror we should first
break the mirror and then the DBA people will apply the patches. After 1 or 2 days there is no problem
again we need sync the data between mirrored volume to patch applied volume. If there is no space for
patch we have to provide space to DBA team.
(iii) Monitoring team :
This team should receive requests or suggestions to ignore any problems occurs. After applied the patch if
the system is automatically rebooted then monitoring team will raise the ticket "Node down" to system
administrators team. So, to avoid those type of tickets we have to sent requests to ignore those type alerts.
(iv) Application team :
For applying any patches, the databases should not be available to application. So, if suddenly database is
not available then application may be crashed. So, first the application should be stopped. This will be done
by application team.
31. What is SLA?
A service-level agreement (SLA) is simply a document describing the level of service expected by a customer
from a supplier, laying out the metrics by which that service is measured and the remedies or penalties, if any,
should the agreed-upon levels not be achieved. Usually, SLAs are between companies and external suppliers,
but they may also be between two departments within a company.
32. What is Problem Management?
The objective of Problem Management is to minimize the impact of problems on the organisation. Problem
Management plays an important role in the detection and providing solutions to problems (work around&
known errors) and prevents their reoccurrence.
A 'Problem' is the unknown cause of one or more incidents, often identified as a result of multiple similar
incidents.A 'Known error' is an identified root cause of a Problem.
33. What is Incident Management?
RatnakarPage 181
[Pick the date] [LINUX NOTES FOR LEVEL 2]
An 'Incident' is any event which is not part of the standard operation of the service and which causes or may
cause, an interruption or a reduction of the quality of the service.
The objective of Incident Management is to restore normal operations as quickly as possible with the least
possible impact on either the business or the user, at a cost-effective price.
Inputs for Incident Management mostly come from users, but can have other sources as well like management
Information or Detection Systems. The outputs of the process are RFC’s (Requests for Changes), resolved and
closed Incidents, management information and communication to the customer.
Change management is a systematic approach to dealing with change, both from the perspective of an
organization and on the individual level. change management has at least three different aspects, including
adapting to change, controlling change, and effecting change. A proactive approach to dealing with change is at
the core of all three aspects.In an information technology (IT) system environment, change management refers
to a systematic approach to keeping track of the details of the system (for example, what operating
system release is running on each computer and which fixes have been applied).
RatnakarPage 182
[Pick the date] [LINUX NOTES FOR LEVEL 2]
C ----->Commonly
O -----> Operated
M -----> Machine
P -----> Particularly
U ----->Used
T ----->Technical and
E ----->Educational
R -----> Research
39. What is the command in sar to monitor NIC devices received/transmitted packets?
# sar -n DEV 1 5
This will show 5 consecutive output each with a time interval of 1 sec for all the ethernet devices
40. What is Linux Kernel?
It acts as an interpreter between Linux OS and its hardware. It is the fundamental component of Linux OS and
contains hardware drivers for the devices installed on the system. The kernel is a part of the system which loads
first and it stays on the memory.
41. What are the main parameters effect on server performance?
The one of the most important task of any Linux Admin includes performance monitoring which includes a
parameter "Load Average" or "CPU Load".
42. What is load average?
Load Average is the value which represents the load on your system for a specific period of time. Also it can be
considered the ratio of the number of active tasks to the number of available CPUs.
43. How to check?
We can use either top or uptime command to view the output of the load average as shown below.
# uptime
00:07:00 up 4 days, 6:14, 1 user, load average: 0.11, 0.14, 0.09
# top
top - 00:07:12 up 4 days, 6:15, 1 user, load average: 0.09, 0.13, 0.09
44. What are the three values?
As you can see three values representing the load average column. These show the load on your system over a
significant period of time (one or current, five and fifteen minutes averages).
45. How do you know your system has a high load?
The most important question as in most cases I have seen how do you determine your system has high load.
Does a high value represents high load average and that your system requires attention?
What is the threshold value for load average?
How can we conclude if the load average value is good or bad?
A Central Processing Unit in earlier days used to be having only one processor and the core concept was not
their in those days. But with the advancement in technology and the urge of higher speed to meet up demands
of IT industry multiple processor were integrated in the same CPU making it multi-processor.
However increasing the no. of processor did increased the working speed of many tasks and performance but it
also leads to increase in size, complexity and heat issues. So, in order to continue improvement of performance
the core concept was introduced.
RatnakarPage 183
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Instead of having two CPUs and a motherboard capable of hosting them, two CPUS are taken together and
combined to form a dual core processor which will utilize an individual socket using less power and size capable
of performing the same amount of task as dual processor CPU.
Bottom Line is that Load value depends on the no. of cores in your machine. For example a dual core is relevant
to 2 processor or 2 cores and quad core is relevant to 4 processor or four cores as the maximum value for load.
46. How do I check the no. of cores on my Linux system?
The information which you see under /proc/cpuinfo can be confusing at times. If you run the below command
# less /proc/cpuinfo | grep processor
processor :0
processor :1
processor :2
processor :3
processor :4
processor :5
So as per the above command my system has 16 processors in it. However it really has 8 processors with
hyper threading enabled. The hyper threading presents 2 logical CPUs to the operating system for each actual
core so it effectively doubles the no. of logical CPU in your system.
47. How to find if hyper threading is enabled
Look out for "ht" in the flags section inside cpuinfo with the below command
# less /proc/cpuinfo | grep flags | uniq | grep -i "ht"
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse
sse2 ss ht tm syscall nx rdtscp lm constant_tsc nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr
sse4_1 sse4_2 popcnt lahf_lm.
The fields we need to compare to find the no. of core are "physical id" and "core id". Run the below command
# less /proc/cpuinfo | grep "physical id" | sort|uniq | wc -l
2
# less /proc/cpuinfo | grep "core id" | sort|uniq | wc -l
4
So the no. of cores would be 2x4 = 8 cores.
48. What do you understand the Load Average?
If the number of active tasks utilizing CPU is less as compared to available CPU cores then the load average can
be considered normal but if the no. of active tasks starts increasing with respect to available CPU cores then the
load average will start rising.For example,
# uptime
00:43:58 up 212 days, 14:19, 4 users, load average: 6.07, 7.08, 8.07
49. How to check all the current running services in Linux?
To find the status of any single service :
# service vsftpd status
vsftpd (pid 5909) is running...
To get the status of all the running services :
# service --status-all | grep running
RatnakarPage 184
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 185
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# dmidecode -s system-product-name
System x3550 M2 -[7284AC1]-
Now to get more details about the system
# dmidecode | less (And search for "System Information")
System Information
Manufacturer: IBM
Product Name: System x3550 M2 -[7284AC1]-
Version: 00
Wake-up Type: Other
SKU Number: XxXxXxX
Family: System x
Virtual Servers :
# dmidecode -s system-product-name
VMware Virtual Platform
# dmidecode | less
System Information
Manufacturer: VMware, Inc.
Product Name: VMware Virtual Platform
Version: None
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Not Specified
On a virtual server running VMware you can run the below command to verify :
# lspci | grep -i vmware
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
51. How to find the bit size of your linux machine?
# uname -m
i686
# uname -m
x86_64
If we get i386, i586 and i686 that signifies your machine is 32-bit but if we getx86_64 or ia64 then your
machine will be 64-bit.
# getconf LONG_BIT
32
# getconf LONG_BIT
64 (Here we get an output of bit size either 32 or 64)
52. How can you add a banner or login message in Linux?
By editing these two files
/etc/issue
/etc/motd
RatnakarPage 186
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 187
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 188
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(d) Type the Root password and Re-type the same to confirm the root password.
(e) Select the Target Architecture (x86_64 or 32 bit)
(iv) Installation Method is the second option.
(a) Installation Method. (Select any one option)
(1) Perform New Installation
(2) Upgrade an existing installation
(b) Installation Source. (Select any one option)
(1) CD-ROM/DVD
(2) NFS
(3) FTP
(4) HTTP
(5) Hard Drive
(v) Boot Loader options is the next option in kickstart configuration.
(a) Select Install New Boot Loader option.
(vi) Partition Information is the next option.
(a) Master Boot Record (Select any one option)
(1) Create Master Boot Record
(2) Do not create Master Boot Record
(b) Partitions (Select any one option)
(1) Remove all existing partitions
(2) Remove existing Linux partitions
(3) Preserve existing partitions
(c) Disk Label (Select any one option)
(1) Initialize the disk label
(2) Do not initialize the disk label
(d) Select Add button and select Mount point, File system type and Sizes to create the partitions.
(vii) Network Configuration is the next option.
(a) Select Add Network Device to add the NIC device, configure the IP address either DHCP or Static
and select enable the NIC at boot time or not.
(viii) Authentication is the next option.
Select the authentication mechanism like Shadow passwords, NIS, LDAP or Kerberos... etc.,
(ix) Firewall Configuration is the next option.
Select whether activate the SELinux or not, Security Level and Firewall Information.
(x) Display Configuration is the next option.
Select the display configuration of the O/S either GUI or CLI mode.
(xi) Package Selection is the next option.
Select the required packages for installation. (we cannot select the packages in RHEL - 7)
(xii) and (xiii) Pre-Installation Scripts and Post-Installation Scripts are the last options.
If we have any Pre-installation or Post-installation scripts, then we have to specify the locations of those.
(xiv) Save this fie by select the Save option in File menu.
(xv) Exit from the Kickstart Configuration window by select the Quit option in File menu.
RatnakarPage 189
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(xvi) Open the kickstart file and the default kickstart file at time by the following command.
# vim -O <kickstart file><anaconda file>
Go to package section in anaconda file, copy the select the packages and paste them in the kickstart file.
(xvii) Check the kickstart file for syntax errors by # ksvalidator <kickstart file> command.
(xviii) Install the webserver package by # yum install httpd* -y command.
(xix) Copy the kickstart file in Document Root of the webserver and preserver the permissions.
# cp -p <kickstart file> /var/www/html/
(xx) Restart the webserver deamons in RHEL - 6 and RHEL - 7.
# service httpd restart (to restart the webserver deamon in RHEL - 6)
# chkconfig httpd on (to enable the webserver deamon at next boot in RHEL - 6)
# systemctl restart httpd (to restart the webserver deamon in RHEL - 7)
# systemctl enable httpd (to enable the webserver deamon at next boot in RHEL - 7)
(xxi) Add the webserver service to IPtables and Firewall.
In RHEL - 6 :
# setup
Select Firewall configuration -----> Select HTTP and HTTPS to the firewall
# service iptables save
# service iptables restart
# chkconfig iptables on
In RHEL - 7 :
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --complete-reload
4. How to install on client system using kickstart file?
(i) Boot the client system using RHEL - 6 DVD and press Esc key.
(ii) Then it prompts us boot : screen.
(iii) Type the following information about the kickstart file, its server and also assign some IP address to the
client system to communicate with kickstart server.
boot : linux ip=< IP address to the client> netmask=<netmask of that IP> ks=ftp://< IP address of the
kickstart server>/<kickstart file name with full path> (press Enter key)
* Then the installation will continue by taking the installation information from the kickstart file.
5. In how many ways can we install RedHat Linux through network?
(i) FTP
(ii) NFS
(iii) HTTP
(iv) PXE
6. How to install RedHat Linux though FTP?
(i) First configure the FTP server and copy the entire RedHat Linux DVD in that FTP document root directory.
(ii) Installation of Linux through network requires one boot.iso image or RHEL DVD.
To make a DVD/Pendrive bootable using boot.iso image :
(a) Download the boot.iso image from redhat website.
RatnakarPage 190
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 191
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 192
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 193
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# chkconfig dhcpd on
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --deport 67 -j ACCEPT
# iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --deport 68 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --deport 67 -j ACCEPT
# iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --deport 68 -j ACCEPT
(h) Configure the TFTP server.
# yum install tftp* syslinux* -y
# vim /etc/xinetd.d/tft
* Go to disable=yes line and make it as no (save and exit this file)
# cp -rvpf /media/RHEL6/isolinux/*.* /var/lib/tftpboot
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /var/lib/tftpboot/isolinux.cfg /var/lib/ftfpboot/pxelinux.cfg/default
# cp -rvpf /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
# service xinetd restart
# chkconfig xinetd on
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --deport 69 -j ACCEPT
# iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --deport 69 -j ACCEPT
(i) Create the kickstart file
# yum install system-config-kickstart -y
# system-config-kickstart (create a kickstart file and save it in /var/ftp/pub directory)
# ksvalidator /var/ftp/pub/ks.cfg
(j) Specify the kickstart file location in pxelinux.cfg file.
# vim /var/lib/tftpboot/pxelinux.cfg/default
* Go to line 19 and edit the lines as below.
menu label ^ PXE SERVER
menu default
kernel vmlinuz
append initrd=initrd.img linux ks=ftp://172.25.9.11/pub/ks.cfg (save and exit this file)
(k) Restart all the services once again.
# service network restart
# chkconfig network on
# service vsftpd restart
# chkconfig vsftpd on
# service dhcpd restart
# chkconfig dhcpd on
# service xinetd restart
# chkconfig xinetd on
RatnakarPage 194
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 195
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Failed :
Failed means, it is already failed. In failed disk the both private and public regions are not available. So, we
cannot get back the (recover) data. The only thing is replace or restore the data from backup.
2. What are the deamons of Veritas Volume Manager?
(a) vxconfigd :
(i) This is the main deamon in Veritas Volume Manager.
(ii) It maintains the Volume Manager configuration information.
(iii) It always resides in the private region of the disk.
(iv) It communicate with the kernel and update the Volume states to configure the database.
(v) It always starts before mounting the root ( / ) file system.
(b) vxiod :
(i) This is used to maintain I/O (input and output) operations.
(ii) This also defines how many I/O operations at a time.
(c) vxrelocd :
(i) It always monitors the consistency in the disks and notify the user if failed using (by) vxnotifyd
deamon.
(ii) It also relocate and recognize the new disk.
(d) vxrecoverd :
(i) It passes the lost data into new disk.
(ii) It also notify to the Administrators using (by) vxnotifyd deamon.
(e) vxnotifyd :
(i) It notify to the user (Administrator) about failed disks and after recovery also it notify to the
Administrator.
3. How to create the root mirror?
(i) Bring the disk from O/S to Veritas Volume Manager control using the Veritas Advanced Management tool,
# vxdiskadm command (It gives (displays) options for easy administration of Veritas Volume Manager).
(ii) Select 2nd option ie., Encapsulation because to preserve the existing data present in the disk and reboot
the system to effect Encapsulation and modify the /etc/sysconfig file. While Encapsulating, it asks disk
name and disk group (root disk name and rootdg).
(iii) Backup the / (root), /etc/sysconfig directories.
(iv) Take another disk and initialize it by # vxdisksetup -i <mirrored root disk name> command.
(v) Add the above initialized disk to the volume group ie., roodg by
# vxdg -g <rootdg> adddisk mirrordisk=<mirrored root disk name>
(vi) vxmirror -v -g <rootdg><original disk name><mirrored root disk name> (disk level mirroring)
(vii) For individual mirroring, # vxassist -g <rootdg> mirror <volume name> or
# vxrootmirr -g <rootdg><volume name> command.
RatnakarPage 196
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) Switchover is the manual task. (i) But, Failover is a automatic task.
(ii) We can switchover service groups from online (ii) But, the failover will failover the service group to
cluster node to offline cluster node incase of the other node when Veritas Cluster heartbeat
power outage, hardware failure, schedule linkdown, damaged, broken because of some
shutdown and reboot. disaster or system hung.
7. Which the main configuration file for VCS (Veritas Cluster) and where it is stored?
' main.cf ' is the main configuration file for VCS and it is located in /etc/VRTSvcs/conf/config directory.
8. What is the public region and private region?
when we bring the disk from O/S control to Volume Manager control in any format (either CDS, simple or
sliced), the disk is logically divided into two parts.
(a) Private region :
It contains Veritas configuration information like disk type and name, disk group name, groupid and
configdb. The default size is 2048 KB.
(b) Public region :
It contains the actual user's data like applications, databases and others.
9. There are five disks on VxVM (Veritas Volume Manager) and all are failed. What are the steps you follow
to get those disks into online?
(i) Check the list of disks in Volume manager control by # vxdisk list command.
(ii) If the above disks are not present, then bring them O/S control to VxVM control by
# vxdisksetup -i <disk names> (if data is not on those disk) or execute
# vxdiskadm command and select 2nd option ie., encapsulation method if the disks having the data.
(iii) Even though If it is not possible, then check the disks are available at O/S level by # fdisk -l command.
(a) If the disks are available, execute the above command once again.
(b) If the disks are not available then recognize them by scanning the hardware.
(iv) Even though if it is not possible, then reboot the system and follow the steps (i) and (ii).
10. What is the basic difference between private disk group and shared disk group?
Private disk group :
The disk group is only visible for the host on which we have created it. If the host is a part of the cluster, the
private disk group will not be visible to the other cluster nodes.
Shared disk group :
The disk group is sharable and visible to the other cluster nodes.
11. How will you create private disk group and shared disk group?
# vxdg init <disk group name><disk media name>=<O/S disk name> (to create the private disk group)
# vxdg -s init <disk group name><disk media name>=<O/S disk name>(to create the shared disk group)
12. How will you add new disk to the existing disk group?
we can do this in two ways.
RatnakarPage 197
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) Run # vxdiskadm command, which will open menu driven program to do various disk operations. Select
add disk option and give disk group name and disk name.
(ii) # vxdg -g <disk group name> adddisk <disk media name>=<O/S disk name>
Example: # vxdg -g appsdg adddisk disk02=/dev/sdb
13. How will you grow or shrink the volume/file system? What is the meaning of grow by, grow to, shrink by
and shrink to options?
(i) We can grow the volume/file system by,
# vxassist -g appsdg growby or growto 100GB appsvol (or)
# vxresize -g appsdg +100GB appsvol alloc = <disk name>
(ii) We can shrink the volume/file system by,
# vxassist -g appsdg shrinkby 20GB appsvol
# vxassist -g appsdg shrinkto 20GB appsvol (or)
# vxresize -g appsdg -10GB appsvol (to shrink by the size 10GB)
# vxresize -g appsdg 10GB appsvol (to shrink to the size 10GB)
Meanings :
growby :
This will be used to grow the file system by adding new size to the existing file system.
growto :
This will be used to grow the file system upto the specified new size. This will not be added the new size to
the existing one.
shrinkby :
This will be used to shrink the file system by reducing the new size from the existing file system size.
shrinkto :
This will be used to shrink the file system upto the specified new size. This will not be reduced the file system
new size from the existing one.
14. If vxdisk list command gives you disk status as " error ". What are the steps you follow to make respective
disk online?
This issue is mainly because of fabric disconnection. So, execute # vxdisk scandisks command. Otherwise
unsetup the disks using # /etc/vx/bin/vxdiskunsetup and setup the disks again using
# /etc/vx/bin/vxdisksetup command.
Note :/etc/vx/bin/vxdiskunsetup will remove the private region from the disk and destroy the data. So,
backup the data before using this command.
RatnakarPage 198
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# vxdisk list or # vxprint (to list from current disk group or imported disk group)
# vxdisk -o alldgs (to list all the disks which are in different disk groups)
18. Define LLT and GAB. What are the commands to create them?
LLT :
(i) LLT means Low Latency Transport protocol
(ii) It monitor the kernel to kernel communication.
(iii) It maintain and distribute the network traffic within the cluster.
(iv) It uses heartbeat between the interfaces.
GAB :
(i) GAB means Global Atomic Broadcasting.
(ii) It maintain and distribute the configuration information of the cluster.
(iii) It uses heartbeat between the disks.
Commands :
# gabconfig -a (to check the status of the GAB, ie., GAB is running or not)
If port ' a ' is listening, means GAB is running, otherwise GAB is not running.
If port ' b ' is listening, means I/O fencing is enabled, otherwise I/O fencing is disabled.
If port ' h ' is listening means had deamon is working, otherwise had deamon is not working.
# gabconfig -c n 2 (to start the GAB in 2 systems in the cluster, where 2 is seed no.)
# gabconfig -u (to stop the GAB)
# cat /etc/gabtab (to see the GAB configuration information and the it contains as, )
gabconfig -c n x (where x is a no. ie., 1, 2, 3, ....etc.,)
# lltconfig -a (to see the status of the llt)
# lltconfig -c (to start the llt)
# lltconfig -u (to stop the llt)
# lltstat -nvv (to see the traffic status between the interfaces)
# llttab -a (to see the cluster ID)
# haclus -display (to see all the information on the cluster)
# cat /etc/llttab (to see the llt configuration and the entries are as,)
Cluster ID, host ID, interface MAC address, ...etc.,
# cat /etc/llthosts (to see the no. of nodes present in the cluster)
19. How to check the status of the Veritas Cluster?
# hastatus -summary
20. Which command is used to check the syntax of the main.cf?
# hacf -verify /etc/VRTSvcs/conf/config
21. How will you check the status of the individual resources of Veritas Cluster (VCS)?
# hares -state <resource name>
22. What is the use of # hagrp command?
# hagrp command is used doing administrative actions on service groups like, on-line service group, off-line
service group and switch, ...etc.,
23. How to switch over the service group?
RatnakarPage 199
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 200
[Pick the date] [LINUX NOTES FOR LEVEL 2]
.stale ' file. So, the VCS is started on a system with a stale configuration file, the system status will be STALE-
ADMIN-WAIT until another system in the cluster starts with a valid configuration file or otherwise execute
# hasys -stale -force <system name> (or) # hasys -force <system name> to start the system
forcefully with the correct or valid configuration file.
30. What is meant by resource and how many types?
Resource is a software or hardware component managed by the VCS.
Mount points, disk groups, volumes, IP addresses, ....etc., are the Software components.
Disks, Interfaces (NIC cards), ....etc., are the Hardware components.
There are two types of resources and they are,
(i) Persistent Resources (we can put them either on-line or off-line)
(ii) Non-Persistent Resources (we can put off-line only)
If the resource is in faulted state, then clear the service group state. Resources cab be critical or non-critical.
If the resource is critical, then it automatically failover if the resource is failed. If the resource is Non-critical,
then it switch over and we have to manually switch over the resource group to another available system.
31. What are the dependencies between resources in a Cluster?
If one resource depends on other resource, then there is a dependency between those resources.
Example : NIC (Network Interface Card) is hardware component nothing but hardware resource. The IP
address is a software component nothing but software resource and it depends on NIC card. The relationship
between NIC and IP address is Parent - Child relationship. The resource which one is starts first, that one is
called Parentresource and the remaining dependency resources are called Child resource.
32. What are the minimum requirements for or in VCS?
(i) Minimum two identical (same configuration) systems.
(ii) Two switches (Optical Fibre Channel).
(iii) Minimum three NIC cards. (Two NICs for private network and one NIC for public network).
(iv) One common storage.
(v) Veritas Volume Manager with license.
(vi) Veritas Cluster with license.
33. What are the Veritas Cluster deamons?
(i) had :
(a) It is the main deamon in Veritas Cluster for high availability.
(b) It monitors the cluster configuration and whole cluster environment.
(c) It interacts with all the agents and resources.
(ii) hashadow :
(a) It always monitor the had deamon.
(b) It's main functionality is logging about the cluster.
35. What are the main configuration files in a Cluster?
* /etc/VRTSvcs/conf/config/main.cf and
* /etc/VRTSvcs/conf/config/types.cf are the main configuration files in Cluster.
36. What are the main log files in a Cluster?
RatnakarPage 201
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) /var/VRTSvcs/log/Engine_A.log (logging about when the cluster started, when failed, when
failover occurs, when switchover
forcefully, ...etc.,)
(ii) /var/VRTSvcs/log/hashadow_A.log (logging about the hashadow deamon)
(iii) /var/VRTSvcs/log/agent_A.log (logging bout agents)
37. What are the Cluster components?
(i) Cluster.
(ii) Service groups.
(iii) Resources.
(iv) Agents.
(v) Events.
38. What is your role in the Cluster?
Normally we will get requests like,
(i) Add a node.
(ii) Add a resource.
(iii) Add a service group.
(iv) Add a resource to the existing service group.
(v) Add mount points.
And sometimes we get some troubleshooting issues like,
(i) had deamon is not running.
(ii) Split barin issue.
(iii) If the resources are faulted, then restart the service groups and moving service groups from one node to
another.
(iv) Cluster is not running.
(v) Communication failed between two nodes.
(vi) GAB and LLT are not running.
(vii) Resource not started.
(viii) main.cf and types.cf files corrupted.
(ix) I/O fencing (a locking mechanism to avoid the split brain issue) is not enabled (at disk level / SAN
level).
(x) And the locks are,
(a) engine.lock
(b) ha.lock
(c) agent.lock
39. What are the statuses of a service group?
(i) online
(ii) offline
(iii) partial
* If the non-critical resource is failed, then the status of the service group may be in partial status.
* If the critical resource is failed, then the status of the service group may be in offline status.
40. How to move the service group from one node to another node manually?
RatnakarPage 202
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 203
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(v) Create the Volume (for the requested size and requested layout).
# vxassist -g appsdg make <volume name><size> (for example volume name is appsvol and
size in TB/GB ...
etc)
(vi) Create a file system on that volume.
# mkfs -F vxfs /dev/vx/rdsk/appsdg/appsvol
(vii) Create the mount point and provide the requested permissions to that mount point.
# mkdir /mnt/apps
(viii) Start the volume.
# vxvol -g appsdg start appsvol
(ix) Mount the file system on the above mount point.
# mount -F vxfs -o <options like rw, re> /dev/vx/dsk/appsdg/appsvol
(where rw means read-write and re means read-only)
(x) Put the entry into the "/etc/fstab" file for permanent mount.
* If the volume is created for cluster, don't put the entry in /etc/fstab file.
(xi) And finally send the mail to client or requested person
43. What is the difference between Global Cluster and Local Cluster? Have you configured the Global Cluster?
Local Cluster :
If all the nodes in a Cluster are placed in a same location, that Cluster is called Local Cluster.
Global Cluster :
If all the nodes in a Cluster are placed in different Geological locations, that Cluster is called Global Cluster.
The main advantage of global cluster is high availability when Natural Calamities or disasters occurs.
RatnakarPage 204
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Attributes :
# hagrp -modify appssg system list={ sys A0, sys B0} (to add sys A and sys B attributes to service group)
# hagrp -modify appssg autostart list={ sys A} (to start the sys A attributes automatically)
# hagrp -modify appssg enabled 1 or 0 (1 means start and 0 means not to start automatically)
(iii) Creating resources and adding them to the service group and specify their attributes.
For file system :
(a) /mnt/apps (the mount point)
(b) /appsvol (the volume name)
(c) /appsdg (the disk group)
# hares -add dg-apps diskgroup appssg (to add the diskgroup resource to a service group)
(where dg-apps is resource name, diskgroup is a keyword and appssg is a service group name)
# hares -modify dg-apps diskgroup appsdg (to add the diskgroup attribute to a service group)
# hares -modify dg-apps enable 1 (to enable the resource)
RatnakarPage 205
[Pick the date] [LINUX NOTES FOR LEVEL 2]
# hares -add dg-volume volume appssg (to add the volume resource to a service group)
# hares -modify dg-volume volume appsvol (to add the volume attribute to a service group)
# hares -modify dg-volume diskgroup appsdg (to add the diskgroup to the volume)
# hares -modify dg-volume enable 1 (to enable the volume resource)
# hares -modify dg-volume critical 1 (to make the resource as critical)
# hares -add dg-mnt mount appssg (to add the mount point resource to a service group)
# hares -modify dg-mnt blockdevice=/dev/vx/rdsk/appsdg/appsvol (to add the block device resource
to a service group)
# hares -modify dg-mnt fstype=vxfs (to add the mount point attributes to a service group)
# hares -modify dg-mnt mount=/mnt/apps (to add the mount point directory attribute to a
service group)
# hares -modify dg-mnt fsckopt=% y or %n (to add the fsck attribute either yes or no to
service group)
(iv) Create links between the above diskgroup, volume and mount point resources.
# hares -link parent-res child-res
# hares -link dg-appdg dg-volume
# hares -link dg-volume dg-mnt
47. What is meant by freezing and unfreezing a service group with persistent and evacuate options?
Freezing :
If we want to apply patches to the system in a cluster, then we have to freeze the service group because first
stop the service group, if it is critical, the service group will move automatically to another system in Cluster.
So, we don't want to move the service group from one system to another system, we have to freeze the
service group.
Unfreeze :
After completing the task, the service group should be unfreezed because, if the is crashed or down and the
resources are critical, then the service group cannot move from system 1 to system 2 due to freezed the
service group and results in not available of application. If unfreezed the service group after maintenance, the
service group can move from system 1 to system 2. So, if system 1 failed, the system2 is available and
application also available.
Persistent option :
If the service group is freezed with persistent option, then we can stop or down or restart the system. So,
there is no loss of data and after restarted the system, the service group is remains in freezed state only.
Example : # hasys -freeze -persistent <system name>
# hasys -unfreeze -persistent <system name>
Evacuate :
If this option is used in freezed service group system, if the system down or restarted the persisted
information is evacuated, ie., before freeze all the service groups should be moved from system 1 to
another system 2.
48. What are the layouts are available in VxVM and how they will work and how to configure?
(i) There are 5 layouts available in VxVM. They are RAID-0, RAID-1, RAID-5, RAID-0+1 and RAID-1+0.
RAID-0 :
RatnakarPage 206
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Logs :
* If the layout is mirror, then log is DRL.
* If the layout is RAID-5, then the log is RAID-5 log.
* The main purpose of the log is fast recovery operation.
* We have to specify whether the log is required or not in all types of layouts except RAID-5 because the
logging is default in RAID-5.
* If we want to configure RAID-5 without logging then,
# vxassist -g <diskgroup name> make <volume name> 50GB, nolog layout=raid 5
RatnakarPage 207
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 208
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(ii) In 24X7/365 days running servers normally we take snap backup.ie., no downtime allowed.
(iii) The above said servers are called BCV (Business Continuity Volumes).
Backup :
(i) First stop the Application.
(ii) Stop the Database.
(ii) Unmount the file system.
(iii) Stop the volume.
(iv) Deport the diskgroup.
(v) Import the diskgroup.
(vi) Join the snap diskgroup.
(vii) Syncing the data.
(viii) Take the backup.
(ix) Split the snap diskgroup.
(x) Deport the diskgroup.
(xi) Import the diskgroup.
(xii) Start the volume.
(xiii) Mount the file system.
(xiv) Start the Database.
(xv) Start the Application.
52. What are the steps you follow to rename a diskgroup?
(i) Stop the Application.
(ii) Stop the Database.
(iii) Unmount the file system.
(iv) Stop the volume.
(v) Deport the diskgroup.
(vi) Rename the diskgroup.
(vii) Import the diskgroup by
# vxdg -n <new diskgroup name> import <old diskgroup name> command.
(viii) Start the volume.
(ix) Mount the file system.
(x) Start the Database.
(xi) Start the Application.
53. How to install VxVM? What version of Veritas you are using and how to know the veritas version?
(i) Install the veritas supplied packages using # rpm or # yum commands.
(ii) Execute the command #vxinstall to install VxVM ie., enable the system to use volume manager.
(iii) #vxinstall will allow us to encapsulate or not encapsulate the root disk.
(iv) Always use option 2 ie., Custom installation because, if option 1 is used ie., Quick installation, it takes all
the disks for rootdg.
License :
RatnakarPage 209
[Pick the date] [LINUX NOTES FOR LEVEL 2]
(i) All the licenses are stored in /etc/vx/licenses directory and we can take backup of this directory and
restore it back, if we need reinstall the server.
(ii) Removing VxVM package will not remove the installed license.
(iii) To install license # vxlicinst command is used.
(iv) To see the VxVM license information by # vxlicrep command.
(v) To remove the VxVM license by # vxkeyless set NONE command.
(vi)The license packages are installed in /opt/VRTSvlic/bin/vxlicrep directory.
(vii) The license keys are stored in /etc/vx/licenses/lic directory.
(viii) We can see the licenses by executing the below commands,
# cat /etc/vx/licenses/lic/key or
# cat /opt/VRTSvlic/bin/vxlicrep | grep "License key"
(ix) To see the features of license key by # vxdctl license command.
Version :
(i) We are using VxVM6.2 version.
(ii) to know the version of VxVM by # rpm -qa VRTSvxvm command.
54. What are the available formats to take the control of disks from O/S to veritas in VxVM?
We can take the control of disks from O/S to veritas in 3 formats.
(i) CDS (Cross platform Data Sharing and the default format in VxVM).
(ii) Sliced.
(iii) Simple.
(i) CDS :
(a) We can share the data between different Unix flavours.
(b) The private and public both regions are available in 7th partition.
(c) The entire space is in 7th partition.
(d) So, there is a chance to loss the data because, if the disk is failed ie., partition 7 is corrupted or
damaged then the data may be lost.
(e) This is the default in veritas volume manager.
(ii) Sliced :
(a) It is always used for root disk only.
(b) In this format we cannot share the data between different Unix flavours. Normally sliced is used for
root disk and cds is used for data.
(c) Private region is available at 4th partition and public region is available at 3rd partition.
(d) So, if public region is failed, we can recover the data from private region ie., minimizing the data loss.
(iii) Simple :
(a) This format is not using widely now because, it is available in old VxVM 3.5
(b) In this private and public regions are available at 3rd partition.
Specifying the format while setup :
# vxdisksetup -i /dev/sda (to setup the disk and this is default format ie., CDS format)
# vxdisksetup -i /dev/sdb format =<sliced / simple> (to specify sliced or simple format)
55. In how many ways can we manage VxVM?
(I) Command line tool.
RatnakarPage 210
[Pick the date] [LINUX NOTES FOR LEVEL 2]
1. How can you define a cluster and what are its basic types?
A cluster is two or more computers (called nodes or members) that work together to perform a task. There are
four major types of clusters:
● Storage
● High availability
● Load balancing
● High performance
2. What is Storage Cluster?
● Storage clusters provide a consistent file system image across servers in a cluster, allowing the servers to
simultaneously read and write to a single shared file system.
● A storage cluster simplifies storage administration by limiting the installation and patching of applications
to one file system.
● The High Availability Add-On provides storage clustering in conjunction with Red Hat GFS2
3. What is High Availability Cluster?
● High availability clusters provide highly available services by eliminating single points of failureand by
failing over services from one cluster node to another in case a node becomes inoperative.
● Typically, services in a high availability cluster read and write data (via read-write mounted file systems).
● A high availability cluster must maintain data integrity as one cluster node takes over control of a service
from another cluster node.
● Node failures in a high availability cluster are not visible from clients outside the cluster.
● High availability clusters are sometimes referred to as failover clusters.
4. What is Load Balancing Cluster?
● Load-balancing clusters dispatch network service requests to multiple cluster nodes to balance the request
load among the cluster nodes.
● Load balancing provides cost-effective scalability because you can match the number of nodes according to
load requirements. If a node in a load-balancing cluster becomes inoperative, the load-balancing software
detects the failure and redirects requests to other cluster nodes.
● Node failures in a load-balancing cluster are not visible from clients outside the cluster.
● Load balancing is available with the Load Balancer Add-On.
5. What is a High Performance Cluster?
● High-performance clusters use cluster nodes to perform concurrent calculations.
● A high-performance cluster allows applications to work in parallel, therefore enhancing the performance of
the applications.
● High performance clusters are also referred to as computational clusters or grid computing.
6. How many nodes are supported in Red hat 6 Cluster?
RatnakarPage 211
[Pick the date] [LINUX NOTES FOR LEVEL 2]
A cluster configured with qdiskd supports a maximum of 16 nodes. The reason for the limit is because of
scalability; increasing the node count increases the amount of synchronous I/O contention on the shared
quorum disk device.
7. What is the minimum size of the Quorum Disk?
The minimum size of the block device is 10 Megabytes.
8. What is the order in which you will start the Red Hat Cluster services?
In Red Hat 4 :
# service ccsd start
# service cman start
# service fenced start
service clvmd start (If CLVM has been used to create clustered volumes)
# service gfs start
# service rgmanager start
In RedHat 5 :
# service cman start
# service clvmd start
# service gfs start
# service rgmanager start
In Red Hat 6 :
# service cman start
# service clvmd start
# service gfs2 start
# service rgmanager start
9. What is the order to stop the Red Hat Cluster services?
In Red Hat 4 :
# service rgmanager stop
# service gfs stop
# service clvmd stop
# service fenced stop
# service cmanstop
# service ccsd stop
In Red Hat 5 :
# service rgmanager stop
# servicegfsstop
# service clvmd stop
# servicecman stop
In Red Hat 6 :
# service rgmanagerstop
# service gfs2 stop
# service clvmdstop
RatnakarPage 212
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 213
[Pick the date] [LINUX NOTES FOR LEVEL 2]
When you run mkfs.gfs2 without the size attribute for journal to create a GFS2 partition, by default a 128MB
sizejournal is created which is enough for most of the applications
In case you plan on reducing the size of the journal, it can severely affect the performance. Suppose you reduce
the size of the journal to 32MB it does not take much file system activity to fill an 32MB journal, and when the
journal is full, performance slows because GFS2 has to wait for writes to the storage.
14. What is a Quorum Disk?
● Quorum Disk is a disk-based quorum daemon, qdiskd, that provides supplemental heuristics to determine
node fitness.
● With heuristics you can determine factors that are important to the operation of the node in the event of a
network partition
For a 3 node cluster a quorum state is present until 2 of the 3 nodes are active i.e. more than half. But what if
due to some reasons the 2nd node also stops communicating with the 3rd node? In that case under a
normal architecture the cluster would dissolve and stop working. But for mission critical environments and such
scenarios we use quorum disk in which an additional disk is configured which is mounted on all the nodes with
qdiskd service running and a vote value is assigned to it.
So suppose in above case I have assigned 1 vote to qdisk so even after 2 nodes stops communicating with 3rd
node, the cluster would have 2 votes (1 qdisk + 1 from 3rd node) which is still more than half of vote count for a
3 node cluster. Now both the inactive nodes would be fenced and your 3rd node would be still up and running
being a part of the cluster.
15. What is rgmanager in Red Hat Cluster and its use?
● This is a service termed as Resource Group Manager
● RGManager manages and provides failover capabilities for collections of cluster resources called services,
resource groups, or resource trees
● it allows administrators to define, configure, and monitor cluster services. In the event of a node failure,
rgmanager will relocate the clustered service to another node with minimal service disruption.
16. What is luci and ricci in Red Hat Cluster?
● luci is the server component of the Conga administration utility
● Conga is an integrated set of software components that provides centralized configuration and
management of Red Hat clusters and storage
● luci is a server that runs on one computer and communicates with multiple clusters and computers via ricci
●
● ricci is the client component of the Conga administration utility
● ricci is an agent that runs on each computer (either a cluster member or a standalone computer) managed
by Conga
● This service needs to be running on all the client nodes of the cluster.
17. What is cman in Red Hat Cluster?
● This is an abbreviation used for Cluster Manager.
● CMAN is a distributed cluster manager and runs in each cluster node.
● It is responsible for monitoring, heartbeat, quorum, voting and communication between cluster nodes.
● CMAN keeps track of cluster quorum by monitoring the count of cluster nodes.
18. What are the different port no. used in Red Hat Cluster?
RatnakarPage 214
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 215
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 216
[Pick the date] [LINUX NOTES FOR LEVEL 2]
top is one of the tool for monitoring system usage and also to make any change for improving system performance.
Introduction:
The top program provides a dynamic real-time view of a running system. It can display system summary
information as well as a list of tasks currently being managed by the Linux kernel. The types of system summary
information shown and the types, order and size of information displayed for tasks are all user configurable and
that configuration can be made persistent across restarts.
1. Without any arguments :
# top
top - 17:51:07 up 1 day, 2:56, 27 users, load average: 5.33, 29.71, 28.33
Tasks: 1470 total, 1 running, 1469 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 264114424k total, 253006956k used, 11107468k free, 66964k buffers
Swap: 33554424k total, 3260k used, 33551164k free, 245826024k cached
RatnakarPage 217
[Pick the date] [LINUX NOTES FOR LEVEL 2]
NOTE: You can enable or disable the marked blue line by pressing "l" once top is running.
top - 17:51:07 up 1 day, 2:56, 27 users, load average: 5.33, 29.71, 28.33
Tasks: 1470 total, 1 running, 1469 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 264114424k total, 253006956k used, 11107468k free, 66964k buffers
Swap: 33554424k total, 3260k used, 33551164k free, 245826024k cached
Explanation: This line tells you about the uptime of your system along with load average value.
NOTE: You can enable/disable the marked blue line by pressing "t".
top - 17:51:07 up 1 day, 2:56, 27 users, load average: 5.33, 29.71, 28.33
Tasks: 1470 total, 1 running, 1469 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 264114424k total, 253006956k used, 11107468k free, 66964k buffers
Swap: 33554424k total, 3260k used, 33551164k free, 245826024k cached
Explanation: This line gives us a brief detail of all the tasks running/sleeping/stopped currently in the system
along with the CPU Usage
Value Meaning
us user cpu time (or) % CPU time spent in user space
sy system cpu time (or) % CPU time spent in kernel space
ni user nice cpu time (or) % CPU time spent on low priority processes
id idle cpu time (or) % CPU time spent idle
wa io wait cpu time (or) % CPU time spent in wait (on disk)
hi hardware irq (or) % CPU time spent servicing/handling hardware interrupts
si software irq (or) % CPU time spent servicing/handling software interrupts
steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing
st
another processor (or) % CPU time stolen from a virtual machine
NOTE: You can enable/disable the marked blue line by pressing "m".
top - 17:51:07 up 1 day, 2:56, 27 users, load average: 5.33, 29.71, 28.33
Tasks: 1470 total, 1 running, 1469 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 264114424k total, 253006956k used, 11107468k free, 66964k buffers
Swap: 33554424k total, 3260k used, 33551164k free, 245826024k cached
Explanation: The next line shows your memory(RAM and swap) usage and capacity.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
RatnakarPage 218
[Pick the date] [LINUX NOTES FOR LEVEL 2]
top - 18:04:26 up 1 day, 3:09, 27 users, load average: 37.12, 34.56, 33.44
Tasks: 1676 total, 1 running, 1675 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.3%us, 76.7%sy, 0.0%ni, 19.7%id, 1.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 264114424k total, 262605184k used, 1509240k free, 77924k buffers
Swap: 33554424k total, 3256k used, 33551168k free, 252198368k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1852 pmartprd 18 0 2005m 319m 4776 S 6.9 4.1 28:34.32 java
2493 pmartprd 16 0 1397m 289m 9.8m S 0.0 4.0 18:37.79 pmrepagent
20557 etlprd 15 0 911m 201m 3024 S 0.0 3.0 17:09.02 pmdtm.orig
18778 root RT 0 286m 188m 156m S 0.0 2.1 13:24.98 aisexec
5456 pmartprd 15 0 1182m 130m 8560 S 6.2 1.1 38:40.58 pmserver
16004 etlprd 14 -1 179m 83m 2636 S 0.0 0.1 9:41.36 db2bp
11272 stmprd 25 0 906m 67m 9736 S 99.7 0.0 0:48.11 java
4. Change the nice value (priority) of any task
To understand what is nice value follow the below link
What is nice and how to change the priority of any process in Linux?
Press "r" when top is running on the terminal. You should get a prompt as shown below in blue color.
top - 18:08:38 up 115 days, 8:44, 4 users, load average: 0.03, 0.03, 0.00
Tasks: 325 total, 2 running, 323 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 6.4%sy, 0.0%ni, 93.3%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 49432728k total, 2063848k used, 47368880k free, 310072k buffers
Swap: 2097144k total, 0k used, 2097144k free, 1297572k cached
PID to renice: 1308 [Hit Enter]
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5359 root 39 19 0 0 0 R 100.1 0.0 94:31:35 kipmi0
1308 deepak 16 0 29492 2292 1512 S 0.7 0.0 0:00.33 top
6116 root 15 0 369m 30m 11m S 0.7 0.1 77:24.97 cimserver
RatnakarPage 220
[Pick the date] [LINUX NOTES FOR LEVEL 2]
Give the PID whose nice value has to be changed and hit "Enter". Then give the nice value for the PID
top - 18:08:38 up 115 days, 8:44, 4 users, load average: 0.03, 0.03, 0.00
Tasks: 325 total, 2 running, 323 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 6.4%sy, 0.0%ni, 93.3%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 49432728k total, 2063848k used, 47368880k free, 310072k buffers
Swap: 2097144k total, 0k used, 2097144k free, 1297572k cached
Renice PID 1308 to value: -1 [Hit Enter]
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5359 root 39 19 0 0 0 R 100.1 0.0 9431:35 kipmi0
1308 deepak 16 0 29492 2292 1512 S 0.7 0.0 0:00.33 top
6116 root 15 0 369m 30m 11m S 0.7 0.1 77:24.97 cimserver
top - 18:09:31 up 115 days, 8:45, 4 users, load average: 0.08, 0.05, 0.01
Tasks: 325 total, 1 running, 324 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.8%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 49432728k total, 2062036k used, 47370692k free, 310072k buffers
RatnakarPage 221
[Pick the date] [LINUX NOTES FOR LEVEL 2]
top - 18:12:41 up 115 days, 8:48, 4 users, load average: 0.04, 0.05, 0.00
Tasks: 328 total, 1 running, 327 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 49432728k total, 2062356k used, 47370372k free, 310072k buffers
Swap: 2097144k total, 0k used, 2097144k free, 1297672k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1561 deepak 17 0 3984 780 468 S 0.0 0.0 0:00.00 man
1564 deepak 19 0 8704 964 816 S 0.0 0.0 0:00.00 sh
1566 deepak 23 0 8704 464 316 S 0.0 0.0 0:00.00 sh
1571 deepak 16 0 8452 892 712 S 0.0 0.0 0:00.01 less
31328 deepak 15 0 110m 2348 1264 S 0.0 0.0 0:00.20 sshd
31329 deepak 16 0 27676 2564 1816 S 0.0 0.0 0:00.02 bash
31422 deepak 15 0 109m 2360 1260 S 0.0 0.0 0:00.14 sshd
31423 deepak 15 0 27548 2500 1784 S 0.0 0.0 0:00.02 bash
7. Change delay between terminal refresh
By default the top terminal is set for auto refresh after every 3 seconds but if you want you can change it as per
your requirement.
Press "d" when top is running. You should get a prompt as shown below in blue color.
top - 18:14:55 up 115 days, 8:50, 4 users, load average: 0.01, 0.04, 0.00
Tasks: 328 total, 1 running, 327 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
RatnakarPage 222
[Pick the date] [LINUX NOTES FOR LEVEL 2]
top - 14:48:40 up 116 days, 5:24, 3 users, load average: 0.05, 0.04, 0.00
Tasks: 318 total, 1 running, 317 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 49432728k total, 2051952k used, 47380776k free, 310176k buffers
Swap: 2097144k total, 0k used, 2097144k free, 1293800k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5359 root 34 19 0 0 0 S 1.0 0.0 9502:15 kipmi0
25009 prasadee 15 0 29492 2280 1516 R 0.3 0.0 0:01.88 top
RatnakarPage 223
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 224
[Pick the date] [LINUX NOTES FOR LEVEL 2]
RatnakarPage 225