So how do you assign static names for SCSI device using udev under Linux? Simply use the scsi_id and other udev tools such as :
[a] scsi_id - retrieve and generate a unique SCSI identifier.
[b] udev_start - script to initialize /dev by using udev
[c] udevtest - simulate a udev run and print the action to the console.
What the hell is udev?
udev is the device manager for the Linux 2.6 kernel series. Its primary function is managing device nodes in /dev. Old UNIX system creates device in the /dev with static files. udev dynamically provides only the nodes for the devices actually present on a system.
Note following configuration is only tested on Gentoo / RHEL 5.x / CentOS 5.x Linux server systems but it should work with other distros with udev support.
Step # 1: Get WWID of the SCSI device
To get the WWID of /dev/sdd, type:
# scsi_id -g -u -s /block/sdd
- -g : Treat the device as white listed
- -u : Reformat the output
- -s /bock/sdd : Generate an id for the /block/sdd (/dev/sdd). The mount point must not be included. For example, use /block/sdd, not /sys/block/sdd.
Step # 2: Create /etc/udev/rules.d/25-names.rules file
Open /etc/udev/rules.d/25-names.rules and append following text (replace WWID with actual id obtained from above command):
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="WWID", SYMLINK+="scsiharddisk%n"
Above rule will create /dev/scsiharddisk (a symlink - select any other meaningful name as per your proecjet ) for the SCSI device with a given WWID. Please note that partitions on this device will be assigned the device names like /dev/scsiharddisk1, /dev/scsiharddisk2 and so on. Next, verify that everything is correct order, enter:
Start initialize /dev for new devices:
Verify symbolic links are created, enter:
# ls -l /dev/scsiharddisk*
Read the man pages for more information:
man 7 udev
I've already written about Linux static routing configuration. However, sometime you need to configure Linux routers dynamically to get changes of network connections by communicating information about which networks each router can reach and how far away those networks are. These days most network admin prefer to use OSPF or BGP over RIP. Linux and UNIX system can act as router using special software.
Quagga is a network routing suite providing implementations of OSPF (v2 & v3), RIP (v1, v2 & v3) and BGP (v4) for Unix-like platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra. Quagga is intended to be used as a Route Server and a Route Reflector. It is not a toolkit, it provides full routing power under a new architecture.
Zebra IP Routing Manager
zebra is an IP routing manager. It provides kernel routing table updates, interface lookups, and redistribution of routes between different routing protocols. zebra is included with quagga software.
Debian / Ubuntu Linux user type the following command:
$ sudo apt-get install quagga
RHEL , Fedora, CentOS Linux user type the following command:
# yum install quagga
quagga Software Configuration
quagga configuration is beyond the scope of this blog post; I recommend reading official configuration documentation for further information.
I've already written about when a user logs in what files are updated in UNIX / Linux.
In this article, you will learn more about UNIX login process such as what happens when you log in, how the logins are recorded into the UNIX system, and how you can use that information to determine who is logged on currently and who has been logged on in the past. You could use a modified version of the Perl script, for example, to provide total user-time information and charge it back to a user or department. From the article:
Explore new ways to record UNIX logins and other system activities in a number of different logs, and take advantage of this information to monitor user usage. This can be helpful from a number of perspectives, either to use for chargeback reporting or just to get an idea of how busy and active individual users are on the system to help when planning and allocating resources.
=> Systems Administration Toolkit: Monitor user usage
All files accessible in a Linux (and UNIX) system are arranged in one big tree, the file hierarchy, rooted at /. These files can be spread out over several devices. The mount command serves to attach the file system found on some device to the big file tree.
Use the mount command to mount remote windows partition or windows share under Linux as follows:
Procedure to mount remote windows partition (NAS share)
1) Make sure you have following information:
==> Windows username and password to access share name
==> Sharename (such as //server/share) or IP address
==> root level access on Linux
2) Login to Linux as a root user (or use su command)
3) Create the required mount point:
# mkdir -p /mnt/ntserver
4) Use the mount command as follows:
# mount -t cifs //ntserver/download -o username=vivek,password=myPassword /mnt/ntserver
Use following command if you are using Old version such as RHEL <=4 or Debian <= 3:
# mount -t smbfs -o username=vivek,password=D1W4x9sw //ntserver/download /mnt/ntserver
5) Access Windows 2003/2000/NT share using cd and ls command:
# cd /mnt/ntserver; ls -l
- -t smbfs : File system type to be mount (outdated, use cifs)
- -t cifs : File system type to be mount
- -o : are options passed to mount command, in this example I had passed two options. First argument is password (vivek) and second argument is password to connect remote windows box
- //ntserver/download : Windows 2000/NT share name
- /mnt/ntserver Linux mount point (to access share after mounting)
Updated for accuracy on Aug-8-2007, 8:19PM.