Selasa, 01 Oktober 2013
RESTORE with Clonezilla and error "Kernel Panic" special instruction for Centos 5.x
Minggu, 09 Juni 2013
Clear DRACstore SUN STORAGE 2540
Changes
A disk in a single-disk RAID-0 volume group failed and was replaced.Cause
A failed disk in a single-disk RAID-0 volume group was replaced without first deleting the volumes it contained or re-initializing the VDisk, leading to an inconsistent or corrupted state of the internal configuration database.In case of a disk failure in a single-disk RAID-0 volume group, all volumes in the volume group must be deleted or the volume group wiped clean via the Initialize VDisk option of the Service Advisor before carrying out the disk replacement.
Solution
It seems the only way to get rid of the missing (ghost) volume in this situation is to wipe the configuration and recreate it. Please contact the Oracle support to get assistance from an engineer.Instructions :
- Connect Putty with Serial Cable - Baudrate 38400 , Flow Control: None
- Send "Break"
- Press ESC, twice/2x
- enter password to access shell : (call me if you can) y2llojp
- -> sysWipe
- press enter
- Disconnect Serial.
- Set the array name to its original value via CAM broswer http://localhost:6789
Minggu, 03 Februari 2013
LVM - How to Create a Partition in Linux
I have got 2 hard disks of 2GB size each -
# fdisk -l 2>/dev/null | grep '/dev/sd[a-b]'
Disk /dev/sda: 2147 MB, 2147483648 bytes
Disk /dev/sdb: 2147 MB, 2147483648 bytes
The following steps will show you how to create logical volumes on these hard disks.
Step 1: Prepare the disks
If you are using entire disks for creating logical volumes, then make sure they are raw disks. ie they should not contain any partitions.
0x8e
, so that they can be recognized by the LVM
system.Step 2: Initialize the disks to be used as a physical volume
To initialize the disks to be used as a physical volume, you use
pvcreate
.# pvcreate /dev/sda
Writing physical volume data to disk "/dev/sda"
Physical volume "/dev/sda" successfully created
# pvcreate /dev/sdb
Writing physical volume data to disk "/dev/sdb"
Physical volume "/dev/sdb" successfully created
Now use
lvmdiskscan
to verify that the hard disks have been properly
initialized.# lvmdiskscan
/dev/sda [ 2.00 GiB] LVM physical volume
...
/dev/sdb [ 2.00 GiB] LVM physical volume
...
2 disks
2 LVM physical volume whole disks
0 LVM physical volumes
Step 3: Create the volume group
To create a volume group, you run the
vgcreate
as follows.# vgcreate vg_sda /dev/sda
Volume group "vg_sda" successfully created
# vgcreate vg_sdb /dev/sdb
Volume group "vg_sdb" successfully created
This creates a volume group descriptor at the start of each disk.
Step 4: Create the logical volumes
Logical volumes can be classified into 3 types -
- Linear volumes
- Stripped volumes, and
- Mirrored volumes
Use
lvcreate
command to create a logical volume.
Lets create a single linear logical volume within each of the volume groups that was created.
# lvcreate --extents 100%FREE --name lv_sda vg_sda
Logical volume "lv_sda" created
# lvcreate --extents 100%FREE --name lv_sdb vg_sdb
Logical volume "lv_sdb" created
In the above commands,
--extents
gives the number of logical extents to allocate for the
new logical volume. Here we have specified the number as the percentage of the
free space in the volume group.lvcreate
takes a lot of options. Do check its man
page to know more.Step 5: Verify your work
Lastly, you should scan all disks for logical volumes and volume groups. For this you use the tools -
vgscan
and lvscan
respectively.# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg_sdb" using metadata type lvm2
Found volume group "vg_sda" using metadata type lvm2
and scan the logical volumes on all the disks ...
# lvscan
ACTIVE '/dev/vg_sdb/lv_sdb' [2.00 GiB] inherit
ACTIVE '/dev/vg_sda/lv_sda' [2.00 GiB] inherit
The logical volumes are included in the
/dev
directory in the format /dev/vg/lv where vg is volume group name, and lv is logical volume name. In our case it will be -
/dev/vg_sda/lv_sda
and
/dev/vg_sdb/lv_sdb
.Run
lvdisplay
to see the
details of the logical volumes that were created.# lvdisplay
--- Logical volume ---
LV Name /dev/vg_sdb/lv_sdb
VG Name vg_sdb
LV UUID ytRveJ-ZCsD-gIXd-Uzfl-UOeO-8CYF-xdXb72
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 511
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3
--- Logical volume ---
LV Name /dev/vg_sda/lv_sda
VG Name vg_sda
LV UUID gTG0Sy-TiF9-3bmF-C7U5-FlqJ-TbZG-eYULtf
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 511
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
From here on, you can access the logical volumes the same way you access physical disks. All the commands such as for mounting disks, creating file systems, formatting and so on will work on the logical volumes as well.
What to do next
Before you start using the logical volumes to store your files, you have to do 2 things, namely -
- Format the logical volume, and
- Mount the logical volume in a suitable location.
First lets format the logical volumes
Formating the logical volume involves creating a file system on it. You use the
mke2fs
command to create a file
system.# mkfs.ext4 /dev/vg_sda/lv_sda
and for the second logical volume ...
# mkfs.ext4 /dev/vg_sdb/lv_sdb
Now lets mount the logical volumes in a suitable location.
Mounting the first logical volume at /mnt/volume-a
# mkdir /mnt/volume-a
# mount -t ext4 /dev/vg_sda/lv_sda /mnt/volume-a
and mounting the second logical volume at /mnt/volume-b
# mkdir /mnt/volume-b
# mount -t ext4 /dev/vg_sdb/lv_sdb /mnt/volume-b
/etc/fstab
file as well.List of LVM Commands
To recap, following are the LVM commands we have used to create logical volumes in Linux.
pvcreate
-
Initializes physical volume for later use by logical volume manager (LVM).
lvmdiskscan
- Scan for all devices visible to
LVM.vgcreate
- Create a volume
group.lvcreate
- Create a logical volume in an existing
volume group.vgscan
- Scan all disks for volume groups and
rebuild caches.lvscan
- Scan all disks for logical
volumes.lvdisplay
- Display attributes (information) of all
logical volumes.There are many more LVM commands that accomplish other tasks. However, these set of LVM commands should get you started on creating an LVM in Linux.
Sabtu, 26 Januari 2013
Bonding RHEL Steps
make sure it contains all interfaces you have in the system and don't configure bond0 inside !
cat /etc/udev/rules.d/70-persistent-net.rules
==========================================================
Firstly, disable network manager if NM is running.
chkconfig NetworkManager off
service NetworkManager stop
===========================================================
vi /etc/modprobe.d/bonding.conf
alias bond0 bonding
alias bond1 bonding
============================================================
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE="bond0"
TYPE="Ethernet"
BROADCAST="10.128.57.255"
GATEWAY="10.128.57.1"
IPADDR="10.128.57.48"
NETMASK="255.255.255.0"
DEFROUTE="yes"
ONBOOT="yes"
USERCTL="no"
BONDING_OPTS="mode=1 miimon=100"
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
USERCTL="no"
ONBOOT="yes"
MASTER="bond0"
SLAVE="yes"
BOOTPROTO="none"
vi /etc/sysconfig/network-scripts/ifcfg-eth4
DEVICE="eth4"
USERCTL="no"
ONBOOT="yes"
MASTER="bond0"
SLAVE="yes"
BOOTPROTO="none"
==========================================================
vi /etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE="bond1"
TYPE="Ethernet"
BROADCAST="192.168.10.255"
GATEWAY="192.168.10.1"
IPADDR="192.168.10.18"
NETMASK="255.255.255.0"
DEFROUTE="no"
ONBOOT="yes"
USERCTL="no"
BONDING_OPTS="mode=1 miimon=100"
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
USERCTL="no"
ONBOOT="yes"
MASTER="bond1"
SLAVE="yes"
BOOTPROTO="none"
vi /etc/sysconfig/network-scripts/ifcfg-eth5
DEVICE="eth5"
USERCTL="no"
ONBOOT="yes"
MASTER="bond1"
SLAVE="yes"
BOOTPROTO="none"
===========================================================
DEFROUTE ifcfg-eth2 and ifcfg-eth3 changes "yes" to "no"
DEFROUTE=no
===========================================================
ifconfig bond0 up
ifconfig bond1 up
modprobe bonding
==========================================================
service network restart
cat /proc/net/bonding/bond0
cat /proc/net/bonding/bond1
ethtool eth0
ethtool eth1
==========================================================
Rabu, 09 Januari 2013
BlogJet
"Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
-- Albert Einstein --
Selasa, 08 Januari 2013
Kickstart-Server RHEL6.2_x86_64 Step-by-steps
A. Create Local Repository (yum local)
1. mount REDHAT EL6 DVD IN TO /mnt mount /dev/cdrw /mnt 2. copy rpms from Packages directory into /opt/source/repo cd /media/"RHEL_6.2 x86_64 Disc 1"/Packages mkdir -p /opt/source/repo cp -rpv * /opt/source/repo 3. Install repocreate utility rpm installation rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm createrepo-0.9.8-4.el6.noarch.rpm 4. cd /opt/source/repo createrepo `pwd` 2293/3596 - xz-libs-4.999.9-0.3.beta.20091007git.el6.x86_64.rpm 5. vi /etc/yum.conf "# PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d" [base-local] name=RHEL6 $releasever - $basearch failovermethod=priority baseurl=file:///opt/source/repo enabled=1 gpgcheck=0 6. check your current local repository yum repolist |
B. Prepare Kickstart-Server
1. Install all the required packages through yum yum install syslinux xinetd tftp-server dhcp httpd 2. mkdir /var/lib/tftpboot/pxelinux.cfg cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 3. Open the xinetd settings to enable tftp server vi /etc/xinetd.d/tftp # at line 14 change the parameter from yes to no. Disable=no 4. Restart the service to apply the settings made service xinetd restart 5. set the service to start with each subsequent system reboots chkconfig xinetd on 6. Open the file and configure the DHCP Server vi /etc/dhcp/dhcpd.conf # Here the next.sever parameter is the address of the kickstart server. # Subnet definition Global Option # WARNING = accomodate MAC ADDRESS (hardware ethernet) and IPADDR (fixed address) Allow booting; Allow bootp; authoritative; # Subnet definition ddns-update-style interim; subnet 10.128.57.0 netmask 255.255.255.0 { range dynamic-bootp 10.128.57.107 10.128.57.110; option broadcast-address 10.128.57.255; option routers 10.128.57.1; filename "pxelinux.0"; next-server 10.128.57.100; } host grid-compute-7 { hardware ethernet 00:50:56:99:E0:61; fixed-address 10.128.57.39; option subnet-mask 255.255.255.0; option routers 10.128.57.1; option host-name "grid-compute-7"; filename "pxelinux.0"; } host grid-compute-8 { hardware ethernet 00:50:56:99:E0:62; fixed-address 10.128.57.49; option subnet-mask 255.255.255.0; option routers 10.128.57.1; option host-name "grid-compute-8"; filename "pxelinux.0"; } 7. Restart the service and make it permanent service dhcpd restart chkconfig dhcpd on 8. Make some required directories mkdir -p /var/www/html/rhel mkdir -p /var/lib/tftpboot/rhel6 9. Insert your RHEL 6.2 DVD + Mount it to /mnt df -h /media/RHEL_6.2 x86_64 Disc 1 10. Check the contents to see if it is properly mounted cd /media/"RHEL_6.2 x86_64 Disc 1" 11. copy all the contents to the /var/www/html/rhel directory cp –arv /media/RHEL_6.2 x86_64 Disc 1/* /var/www/html/rhel 12. After the file copy operation eject the DVD eject cdrom 12. Copy the vmlinuz and initrd.img files to the tftpboot directory cp /var/www/html/rhel/images/pxeboot/vmlinuz /var/lib/tftpboot/rhel6 cp /var/www/html/rhel/images/pxeboot/initrd.img /var/lib/tftpboot/rhel6 13. Copy the menu file cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/ 14. Prepare the boot menu. vi /var/lib/tftpboot/pxelinux.cfg/default timeout 100 default menu.c32 menu title === Hell-Me-Kickstart === label 1 menu label ^ 1) RedHat Enterprise Linux kernel rhel6/vmlinuz append initrd=rhel6/initrd.img ks=http://10.128.57.100/ks/ks.cfg 15. Prepare the httpd server vi /etc/httpd/conf/httpd.conf Listen 10.128.57.100:80 service httpd restart (ignore the fully qualified domain name error if it occurs.) chkconfig httpd on vi /etc/hosts 10.128.57.100 kick-server 16. Prepare nfs server vi /etc/exports /var/www/html/ks *(rw,no_root_squash) /var/www/html/rhel *(rw,no_root_squash) service nfs restart chkconfig nfs on exportfs /var/www/html/ks disable selinux vi /etc/selinux/config SELINUX=disable shutdown -r now |
C. Prepare Kickstart Config (ks.cfg)
1. Make the directory and copy the kickstart file to it
2. And make the kickstart file globally read only (chmod 644)
mkdir -p /var/www/html/ks
mkdir -p /var/www/html/ks/logs
3. vi /var/www/html/ks
|
#platform=x86, AMD64, or Intel EM64T
#version=RHEL6.2_x86_64 # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use NFS or http installation media #nfs --server=10.128.57.100 --dir=/var/www/html/rhel url --url http://10.128.57.100/rhel # Root password indosat01 rootpw --iscrypted $1$nWgsJGK8$DAjPcF813tgBCqskYMzdQ0 # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install #text graphical # Run the Setup Agent on first boot firstboot --enable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --disabled # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone --isUtc Asia/Jakarta # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all # Disk partitioning information part /boot/efi --asprimary --fstype="vfat" --size=200 part /boot --asprimary --fstype="ext4" --size=500 part pv.01 --size=1 --grow # volgroup vg_gridcompute --pesize=4096 pv.01 # logvol / --fstype="ext4" --name=lv_root --vgname=vg_gridcompute --size=10240 logvol swap --fstype="swap" --name=lv_swap --vgname=vg_gridcompute --size=800 logvol /home --fstype="ext4" --name=lv_home --vgname=vg_gridcompute --size=512 logvol /tmp --fstype="ext4" --name=lv_tmp --vgname=vg_gridcompute --size=900 logvol /var --fstype="ext4" --name=lv_var --vgname=vg_gridcompute --size=5120 bootloader --location=mbr --driveorder=sda --append="nomodeset rhgb quiet" %packages @backup-server @additional-devel @base @basic-desktop @compat-libraries @debugging @desktop-platform @development @directory-client @fonts @general-desktop @graphical-admin-tools @internet-browser @large-systems @legacy-unix @legacy-x @network-file-system-client @network-tools @nfs-file-server @performance @perl-runtime @print-client @remote-desktop-clients @server-platform @server-platform-devel @system-management-snmp @tex @x11 glibc-utils iptraf mtools pax python-dmidecode qt-mysql qt-odbc qt-postgresql qt3-MySQL qt3-ODBC qt3-PostgreSQL rdesktop spice-client spice-xpi system-config-kickstart system-config-lvm tigervnc tsclient vinagre xorg-x11-xdm xterm libxcb.i686 nss-softokn-freebl.i686 libcap.i686 cracklib.i686 libXau.i686 libXpm.i686 compat-libstdc++-33.i686 db4.i686 libattr.i686 libX11.i686 libselinux.i686 pam.i686 glibc.i686 libgcc.i686 audit-libs.i686 glibc-devel.i686 libstdc++.i686 libXp.i686 libXp.x86_64 libXext.i686 libxcb.i686 ksh.x86_64 %end #====================================================== %post # And so begins the post-install section. # this is currently in a chroot to / on the # new file system. # Various variables I like to set first to use later ( # I run everything in this, so I can log it /bin/echo "Welcome to $HOSTNAME Server " > /etc/motd # One way of adding to files cat >> /etc/sysctl.conf << EOF #Semaphore Limits SEMMSL SEMMNS SEMOPM SEMMNI kernel.sem = 250 256000 32 1024 EOF
# Another way of inputing to files
echo 'root soft nofile 10240' >> /etc/security/limits.conf echo 'root hard nofile 10240' >> /etc/security/limits.conf echo 'root soft nproc -1' >> /etc/security/limits.conf echo 'root hard nproc -1' >> /etc/security/limits.conf
# Add a user if you like
useradd -m -u 98 -d /home/ibm ibm echo ibm | passwd ibm --stdin
# setup bonding runing script network_config.sh + hostfile.csv
# (placed both file on /var/www/html/ks)
mount -t nfs -o nolock 10.128.57.100:/var/www/html/ks /mnt chmod 777 /mnt/network_config.sh /mnt/network_config.sh
# Here doing some system settings
# Setup hosts file cat > /etc/hosts << EOF
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.128.57.39 grid-compute-7 10.128.57.49 grid-compute-8 EOF
# setup NTP Client
echo 'server 10.10.100.5' >> /etc/ntp.conf echo 'server 10.2.2.67' >> /etc/ntp.conf
# Turn some services on and off and mkdir
/sbin/chkconfig ip6tables off /sbin/chkconfig iptables off /sbin/chkconfig ntpd on /sbin/chkconfig postfix off /bin/mkdir -p /opt/oracle /bin/mkdir -p /etl_prod /bin/mkdir -p /etl_prod/backup /bin/mkdir -p /etl_prod/etl_dataset /bin/mkdir -p /etl_prod/source /bin/mkdir -p /etl_prod/app /bin/mkdir -p /etl_prod/etl_scratch ) > /tmp/kickstart-install.log 2>&1 # The aforementioned log. %end |
1. vi /var/www/html/ks/network_config.sh |
# cat network_config.sh #!/bin/bash DEBUG=off IFCONFIG=/sbin/ifconfig NIC_FILE_DIR=/etc/sysconfig/network-scripts/ GW_FILE=/etc/sysconfig/network HOST_FILE=/etc/hosts DNS_FILE=/etc/resolv.conf DOMAIN_LIST="no.domain.com" #### ## function readHostFile ## reads $HOST_MAP_FILE for specific network information about this host ## return 1 on error, 0 on success ## options can be in any order (nic, gw, or bond), broadcast and network address are calculated based on ip and mask ## calls functions to generate Gateway ($GW_FILE), Hosts ($HOST_FILE), and ifcfg ($NIC_FILE_DIR/ifcfg-{nic}) ## ## host_map_file format ## {host},nic={eth#} ip mask [?primary],gw={gw_ip},bond={bond#} {nic1} {nic2} {ip} {mask},domain={dns_server},{dns_server} ## e.g. server1,nic=eth0 192.168.1.1 255.255.255.0,gw=192.168.0.1,nic=bond0 eth1 eth2 192.168.0.10 255.255.255.0 1,dns=192.168.0.254 192.168.1.254 #### readHostFile() { if [ -e $HOST_MAP_FILE ] then # override default DOMAIN_LIST if it exists DOMAIN_TMP=$(cat $HOST_MAP_FILE | grep -wi "DOMAINSEARCH" | cut -f2 -d =) if [ ! -z "$DOMAIN_TMP" ] then log info "Domain search list found -- $DOMAIN_TMP" DOMAIN_LIST="$DOMAIN_TMP" else log info "Domain search not found, using defaults -- $DOMAIN_LIST" fi # parse the file for this host exactly (-w) and case insensitive HOST_INFO=$(cat $HOST_MAP_FILE | grep -wi `hostname`) # check to see there was an entry for this host if [ -z "$HOST_INFO" ] then log warning "Host information for `hostname` was not found in HOST_MAP_FILE" return 1 fi log notify "Host information found for `hostname` in $HOST_MAP_FILE" log notify "Host info is $HOST_INFO" # parse HOST_INFO IFS=$',' for entry in $HOST_INFO do log debug "Working on entry $entry" KEY=`echo $entry | cut -f1 -d =` VALUE=`echo $entry | cut -f2 -d =` case "$KEY" in nic) log debug "nic is specified -- $VALUE" NIC=`echo $VALUE | cut -f1 -d " "` if [ ${#NIC} -eq 12 ] then # we are working with a MAC address NIC=$(getNIC $NIC) fi IPADDR=`echo $VALUE | cut -f2 -d " "` MASK=`echo $VALUE | cut -f3 -d " "` PRIMARY=`echo $VALUE | cut -f4 -d " "` BROADCAST=$(getBroadcastAddress $IPADDR $MASK) NETWORK=$(getNetworkAddress $IPADDR $MASK) # MAC address for this card MAC=$(getMAC $NIC) if [ -z $NIC ] then log error "Missing NIC information aborting file creation" else log info "Values for NIC $NIC - MAC $MAC - IP $IPADDR - NetMask $MASK - Broadcast $BROADCAST - Network $NETWORK" genIPFile $NIC $MAC $IPADDR $MASK $BROADCAST $NETWORK fi if [ "$PRIMARY" == 1 ] then genHostFile $IPADDR fi ;; bond) #nic=bond0 eth1 eth2 192.168.0.10 255.255.255.0 1 log debug "bond is specified -- $VALUE" BOND=`echo $VALUE | cut -f1 -d " "` NIC1=`echo $VALUE | cut -f2 -d " "` if [ ${#NIC1} -gt 12 ] then # we are working with a MAC address NIC1=$(getNIC $NIC1) fi NIC2=`echo $VALUE | cut -f3 -d " "` if [ ${#NIC2} -gt 12 ] then # we are working with a MAC address NIC2=$(getNIC $NIC2) fi IPADDR=`echo $VALUE | cut -f4 -d " "` MASK=`echo $VALUE | cut -f5 -d " "` BROADCAST=$(getBroadcastAddress $IPADDR $MASK) NETWORK=$(getNetworkAddress $IPADDR $MASK) log info "Values for BOND $BOND - NIC1 $NIC1 - NIC2 $NIC2 - IP $IPADDR - NetMask $MASK - Broadcast $BROADCAST - Network $NETWORK" genBondFile $BOND $NIC1 $NIC2 $IPADDR $MASK $BROADCAST $NETWORK if [ "$PRIMARY" == 1 ] then genHostFile $IPADDR fi ;; gw) log debug "Gateway value - $VALUE" genGWFile $VALUE ;; dns) log debug "DNS is specified -- $VALUE" genDNSFile "$VALUE" esac done else log warning "Hostfile $HOST_MAP_FILE does not exist" return 1 # configure eth0 as static based on the current DHCP address fi } #### ## function getNIC {mac_addr} ## returns eth# based on MAC address #### getNIC() { local RAW_MAC=$1 # a properly formatted MAC address is 00:10:20:30:40:50 (17 characters) if [ ${#RAW_MAC} -ne 17 ] then # assume the user didn't put in : marks COUNT=0 # in case this is IPv6 loop for the entire raw mac length while [ $COUNT -lt ${#RAW_MAC} ] do if [ $COUNT -eq 0 ] then SEARCH_MAC=${RAW_MAC:$COUNT:2} else SEARCH_MAC="$SEARCH_MAC:${RAW_MAC:$COUNT:2}" fi COUNT=$(($COUNT + 2)) done else SEARCH_MAC=$RAW_MAC fi # return eth# for a specific MAC local NIC=`$IFCONFIG -a | grep -i $SEARCH_MAC | awk '{print $1}'` if [ -z $NIC ] then log error "Network interface was not found for nic $SEARCH_MAC, this interface will not be configured correctly" log error "ifconfig output is \n`$IFCONFIG -a`" else log info "NIC $SEARCH_MAC found as $NIC" fi echo $NIC } #### ## function genBondFile {bond#} {nic1} {nic2} {ip} {mask} {broadcast} {network} ## nic=bond0 eth0 eth1 192.168.0.10 255.255.255.0 ## nic=eth0 192.168.0.10 255.255.255.0 192.168.0.254 192.168.0.0 #### genBondFile() { local BOND=$1 local NIC1=$2 local NIC2=$3 local IP=$4 local MASK=$5 local BROADCAST=$6 local NETWORK=$7 local BOND_FILE=${NIC_FILE_DIR}ifcfg-$BOND local NIC1_FILE=${NIC_FILE_DIR}ifcfg-$NIC1 local NIC2_FILE=${NIC_FILE_DIR}ifcfg-$NIC2 log info "Creating Bond file $BOND_FILE" echo "DEVICE=$BOND" > $BOND_FILE echo "BOOTPROTO=none" >> $BOND_FILE echo "ONBOOT=yes" >> $BOND_FILE echo "NETWORK=$NETWORK" >> $BOND_FILE echo "NETMASK=$MASK" >> $BOND_FILE echo "IPADDR=$IP" >> $BOND_FILE echo "BROADCAST=$BROADCAST" >> $BOND_FILE echo "USERCTL=no" >> $BOND_FILE echo "BONDING_OPTS=\"mode=1 miimon=300 primary=$NIC1\"" >> $BOND_FILE log info "Creating network file $NIC1_FILE" echo "DEVICE=$NIC1" > $NIC1_FILE echo "BOOTPROTO=none" >> $NIC1_FILE echo "HWADDR=$(getMAC $NIC1)" >> $NIC1_FILE echo "ONBOOT=yes" >> $NIC1_FILE echo "MASTER=$BOND" >> $NIC1_FILE echo "SLAVE=yes" >> $NIC1_FILE echo "USERCTL=no" >> $NIC1_FILE log info "Creating network file $NIC2_FILE" echo "DEVICE=$NIC2" > $NIC2_FILE echo "BOOTPROTO=none" >> $NIC2_FILE echo "HWADDR=$(getMAC $NIC2)" >> $NIC2_FILE echo "ONBOOT=yes" >> $NIC2_FILE echo "MASTER=$BOND" >> $NIC2_FILE echo "SLAVE=yes" >> $NIC2_FILE echo "USERCTL=no" >> $NIC2_FILE log info "Modifying modprobe.conf file /etc/modprobe.d/bonding.conf" echo "alias $BOND bonding" >> /etc/modprobe.d/bonding.conf } #### ## function getMAC {nic} ## gets the MAC address for a given interface using ifconfig #### getMAC() { HWINFO=`$IFCONFIG $1 | grep HWaddr` # eth0 Link encap:Ethernet HWaddr 00:50:56:9C:1B:00 if [ $? -ne 0 ] then log error "Cannot find MAC address for interface $1" # return nothing to the calling process echo " " else # return the MAC address echo $HWINFO | awk '{print $5}' fi } #### ## function genDomainFile {nameserver} {nameserver} {etc} ## creates a basic DNS file for nameserver entries #### genDNSFile() { log info "Creating DNS file $DNS_FILE" OldIFS=$IFS IFS=" " > $DNS_FILE # create search entries echo "search $DOMAIN_LIST" >> $DNS_FILE # create server entries for dnsEntry in $1 do echo "nameserver $dnsEntry" >> $DNS_FILE done IFS=$OldIFS } #### ## function genHostFile {local_ip} ## creates a basic hosts file with loopback and this host #### genHostFile() { local IP=$1 log info "Creating host file $HOST_FILE" echo "127.0.0.1 localhost.localdomain localhost" > $HOST_FILE echo "$IP `hostname`" >> $HOST_FILE } #### ## function genGWFile {gateway_ip} ## create the default route file including default RedHat values #### genGWFile() { local GW=$1 log info "Creating gateway file $GW_FILE" echo "NETWORKING=yes" > $GW_FILE echo "NETWORKING_IPV6=no" >> $GW_FILE echo "HOSTNAME=`hostname`" >> $GW_FILE echo "GATEWAY=$GW" >> $GW_FILE } #### ## function genIPFile {nic} {mac} {ip} {mask} {broadcast} {network} ## create the IP Address file (ifcfg-eth{x}) ## e.g. nic=eth0 00:50:56:9C:1B:00 192.168.0.10 255.255.255.0 192.168.0.254 192.168.0.0 #### genIPFile() { local NIC=$1 local MAC=$2 local IP=$3 local MASK=$4 local BROADCAST=$5 local NETWORK=$6 local IP_FILE=${NIC_FILE_DIR}ifcfg-${NIC} log info "Creating network file $IP_FILE" echo "DEVICE=$NIC" > $IP_FILE echo "BOOTPROTO=static" >> $IP_FILE echo "BROADCAST=$BROADCAST" >> $IP_FILE echo "HWADDR=$MAC" >> $IP_FILE echo "IPADDR=$IP" >> $IP_FILE echo "NETMASK=$MASK" >> $IP_FILE echo "NETWORK=$NETWORK" >> $IP_FILE log debug "----------- ifcfg-$NIC file -----------" log debug "\n`cat $IP_FILE`" log debug "----------------------" } #### ## function getNetworkAddress ## calculates the network address given an ip and subnet mask ## converts the ip and mask into an array and does a bitwise and for each element #### getNetworkAddress() { OldIFS=$IFS IFS=. typeset -a IP_Array=($1) typeset -a MASK_Array=($2) IFS=$OldIFS echo $((${IP_Array[0]} & ${MASK_Array[0]})).$((${IP_Array[1]} & ${MASK_Array[1]})).$((${IP_Array[2]} & ${MASK_Array[2]})).$((${IP_Array[3]} & ${MASK_Array[3]})) } #### ## function getBroadcastAddress ## calculates the broadcast address given an ip and subnet mask ## converts the ip and mask into an array and does a bitwise or (|) against an XOR (^) #### getBroadcastAddress() { OldIFS=$IFS IFS=. typeset -a IP_Array=($1) typeset -a MASK_Array=($2) IFS=$OldIFS echo $((${IP_Array[0]} | (255 ^ ${MASK_Array[0]}))).$((${IP_Array[1]} | (255 ^ ${MASK_Array[1]}))).$((${IP_Array[2]} | (255 ^ ${MASK_Array[2]}))).$((${IP_Array[3]} | (255 ^ ${MASK_Array[3]}))) } #### ## function readDHCPAddress ## reads information currently running and writes it out as a static IP entry #### readDHCPAddress() { log info "Host information was not found for this server, copying information from running configuration (DHCP)" # the grep will grab two lines of output and merge them together # eth0 Link encap:Ethernet HWaddr 00:50:56:9C:1B:00 # inet addr:192.168.0.10 Bcast:192.168.0.254 Mask:255.255.255.0 HWINFO=`$IFCONFIG | grep -A 1 -i hwaddr` NIC=`echo $HWINFO | cut -f1 -d " "` MAC=`echo $HWINFO | cut -f5 -d " "` for i in $HWINFO do case "$i" in addr:*) IP=`echo $i | cut -f2 -d :` ;; Bcast:*) BROADCAST=`echo $i | cut -f2 -d :` ;; Mask:*) MASK=`echo $i | cut -f2 -d :` ;; esac done NETWORK=$(getNetworkAddress $IP $MASK) log debug "DHCP information is NIC $NIC - MAC $MAC - IP $IP - MASK $MASK - BROADCAST $BROADCAST - NETWORK $NETWORK" genIPFile $NIC $MAC $IP $MASK $BROADCAST $NETWORK genHostFile $IP GATEWAY=`netstat -rn | grep -w UG | awk '{print $2}'` genGWFile $GATEWAY } #### ## function log ## logs activities to the screen, a file, or both #### log() { LOG_TYPE="$1" LOG_MSG="$2" TIME=`date +'%H:%M:%S %Z'` # specify the log file only once if [ ! -d /mnt/logs ] then mkdir ${/mnt}/logs fi if [ -z $LOG_FILE ] then LOG_FILE="/mnt/logs/network_config-`hostname`-`date +%Y%m%d-%H%M%S`" fi if [ $LOG_TYPE == "error" ] then echo -e "$TIME - **ERROR** - $LOG_MSG" >> $LOG_FILE elif [ $LOG_TYPE == "debug" ] then if [ $DEBUG == "on" ] then echo -e "DEBUG - $LOG_MSG" >> "$LOG_FILE" fi elif [ $LOG_TYPE == "warning" ] then echo -e "$TIME - **WARNING** - $LOG_MSG" >> $LOG_FILE else echo -e "$TIME - $LOG_MSG" >> "$LOG_FILE" fi } # read source directory from command line. This is where we will read the hostfile.csv and output logs to SOURCE_DIR=$1 HOST_MAP_FILE=/mnt/hostfile.csv readHostFile if [ $? -ne 0 ] then readDHCPAddress fi |
1.vi /var/www/html/ks/hostfile.csv
|
grid-compute-7,bond=bond0 eth0 eth1 10.128.57.39 255.255.255.0 1,gw=10.128.57.1
grid-compute-8,bond=bond0 eth0 eth1 10.128.57.49 255.255.255.0 1,gw=10.128.57.1
|
Jumat, 21 September 2012
XSCF sethttps enable
XSCF> sethttps -c genserverkey
Enter passphrase: mitra_01
Verifying – Enter passphrase: mitra_01
Create the self-signed web server certificate by speficying the DN.
XSCF> sethttps -c selfsign ID Jakarta DKI Ruang Data Center aku@email.com
CA key and CA cert already exist. Do you still wish to update? [y|n] :y
Enter passphrase: mitra_01
Verifying – Enter passphrase: mitra_01
Now enable https.
XSCF> sethttps -c enable
Continue? [y|n] : y
Please reset the XSCF by rebootxscf to apply the https settings.
Reboot with the rebootxscf command
open firefox with https://ip_addr_xscf
Jumat, 30 Desember 2011
Using Centos DVD as Yum Repository
b. /media/cdrom/
c. /media/cdrecorder/
# vi /etc/yum.repos.d/CentOS-Media.repo
make sure enabled = 1.
Test # yum --disablerepo=\* --enablerepo=c5-media install groupinstall "X Window System" "GNOME Desktop Environment"Sabtu, 17 Desember 2011
create directory at the same time command 1 of 12
bash>perl -e 'for (1..12) {system("mkdir -p /oracle/oradata$_")};'
create directory {/oraindex } {redolog} {ctl} 1 of 12
bash>perl -e 'for (1..12) {system("mkdir oraindex$_")};'
bash>perl -e 'for (1..12) {system("mkdir redolog$_")};'
bash>perl -e 'for (1..3) {system("mkdir ctl$_")};'
remove directory /oraindex12 of 71
bash>perl -e 'for (12..71) {system("rm -rf oraindex$_")};'
SVM standarisasi ku
usr/sbin/installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk/dev/rdsk/c0t1d0s2
metadb -a -f -c 3 c0t0d0s7
metadb -a -f -c 3 c0t1d0s7
echo set md:mirrored_root_flag=1 >> /etc/system
for /
===============================
metainit -f d0 1 1 c0t0d0s0
metainit -f d1 1 1 c0t1d0s0
metainit d2 -m d0
metaroot d2
init 6
metattach d2 d1
metastat d2
===============================
for swap
===============================
metainit -f d3 1 1 c0t0d0s1
metainit -f d4 1 1 c0t1d0s1
metainit d5 -m d3
metattach d5 d4
metastat d5
for /var
===============================
metainit -f d6 1 1 c0t0d0s3
metainit -f d7 1 1 c0t1d0s3
metainit d8 -m d6
metattach d8 d7
metastat d8
for /opt
===============================
metainit -f d9 1 1 c0t0d0s4
metainit -f d10 1 1 c0t1d0s4
metainit d11 -m d9
metattach d11 d10
metastat d11
for /usr/openv
===============================
metainit -f d12 1 1 c0t0d0s5
metainit -f d13 1 1 c0t1d0s5
metainit d14 -m d12
metattach d14 d13
metastat d14
for /data
===============================
metainit -f d15 1 1 c0t0d0s6
metainit -f d16 1 1 c0t1d0s6
metainit d17 -m d15
metattach d17 d16
metastat d17
# metastat | grep progress
# while true; do metastat | grep progress; sleep 5; done
EDIT
/etc/vfstab
CHECK eeprom
#ls -l /dev/dsk/c0t0d0s0 -> ../../devices/pci@1e,600000/ide@d/sd@0,0:a
#ls -l /dev/dsk/c0t1d0s0 -> ../../devices/pci@1e,600000/ide@d/sd@1,0:a
You will need to update the bold part above, with your output. You will then run the following command from the OS
# eeprom "nvramrc=devalias rootdisk /pci@1e,600000/ide@d/disk@0,0:a devalias rootmirr /pci@1e,600000/ide@d/disk@1,0:a"
# eeprom boot-device="rootdisk rootmirr"
# eeprom "use-nvramrc?=true"
Boot archive error or corrupt
Error:
module /platform/i86pc/boot_archive error 3 bad or corrupt data while decompressing fileWorkaround:
Boot up your solaris in "solaris failsafe mode", next solaris image will mount with writeable mode on "/a" mount point
ok> boot -F failsafe
bash> rm -f /a/platform/`uname -i`/boot_archive
bash> bootadm update-archive -R /a
bash> reboot
Kill Many* Jobs
I must kill many session client who connect to the database and running in background Os...
bash> ps -ef|grep -i local=no
oracle 19027 1 0 Sep 07 ? 0:01 oracleSERVER (LOCAL=NO)
oracle 25918 1 0 Sep 07 ? 0:03 oracleSERVER (LOCAL=NO)
oracle 16403 1 0 Sep 07 ? 0:00 oracleSERVER (LOCAL=NO)
oracle 18858 1 0 Sep 06 ? 0:01 oracleSERVER (LOCAL=NO)
oracle 7836 1 0 Sep 07 ? 0:02 oracleSERVER (LOCAL=NO)
oracle 9021 1 0 Sep 07 ? 0:00 oracleSERVER (LOCAL=NO)
Show this the trick (when Nobody give up..:D)
bash> ps -ef|grep LOCAL|awk '{print $2'}|xargs kill -9
Minggu, 01 Juli 2007
Untuk Blogspot/blogger nulisnya pake BlogJet
ok dech…cuman cukup ribet, sayang blogdesk blom mendukung untuk blogspot sampai tulisan ini di tulis.