N27—第十周作業

N27_第十周作業

1、請詳細描述Centos系統的啟動流程(詳細到每個過程系統做了哪些事情)
詳情請參考http://www.www58058.com/85713
2、為運行于虛擬機上的Centos 6添加一塊新的硬盤,提供兩個主分區;
(1)為硬盤新建兩個主分區;并為其安裝grub
(2)為硬盤的第一個主分區提供內核和ramdisk文件;為第二個分區提供rootfs
(3)為rootfs提供bash、ls、cat程序及所依賴的庫文件
(4)為grub提供配置文件;
(5)將新的硬盤設置為第一啟動項并能夠正常啟動目標主機

1)增加一塊新的硬盤,
[root@localhost ~]# cd /sys/class/scsi_host/
[root@localhost scsi_host]# ls
host0  host1  host2
[root@localhost scsi_host]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost scsi_host]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@localhost scsi_host]# echo "- - -" > /sys/class/scsi_host/host2/scan

fdifsk /dev/sdd
………
[root@localhost ~]#mkdir /mnt/{boot,sys}
[root@localhost ~]# mount /dev/sdd1 /mnt/boot/
[root@localhost ~]# mount /dev/sdd2 /mnt/sys/
2) 為硬盤的第一個主分區提供內核和ramdisk文件
[root@localhost ~]# cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /mnt/boot/vmlinuz
[root@localhost ~]# cp /boot/initramfs-2.6.32-431.el6.x86_64.img /mnt/boot/initramfs.img
[root@localhost ~]# grub-install --root-directory=/mnt/boot/ /dev/sdd1
為第二個分區提供rootfs
[root@localhost ~]# cd /mnt/sys/
[root@localhost sys]# mkdir bin dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var
3) 為rootfs提供bash、ls、cat程序及所依賴的庫文件
[root@localhost ~]# cp /bin/{bash,ls,cat} /mnt/sys/bin/
[root@localhost ~]# ldd /bin/bash
    linux-vdso.so.1 =>  (0x00007fff095ff000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fe547896000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fe547692000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fe5472fd000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe547ac9000)

……
[root@localhost ~]# ldd $(which --skip-alias bash) |grep -o "/.*\.[[:digit:]]"|xargs -I {} cp {} /mnt/sys/lib64
[root@localhost ~]# ldd $(which --skip-alias ls) |grep -o "/.*\.[[:digit:]]"|xargs -I {} cp {} /mnt/sys/lib64
[root@localhost ~]# ldd $(which --skip-alias cat) |grep -o "/.*\.[[:digit:]]"|xargs -I {} cp {} /mnt/sys/lib64
用chroot測試
[root@localhost ~]# chroot /mnt/sys/
bash-4.1# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin    selinux  srv  sys  tmp    usr  var
bash-4.1# exit
exit
4) 為grub提供配置文件[root@localhost ~]# vim /mnt/boot/boot/grub/grub.conf
default=0
timeout=5
title Centos (my centos)
root (hd0,0)
kernel /vmlinuz ro root=/dev/sdd2 init=/bin/bash
initrd /initramfs.img
3、制作一個kickstart文件以及一個引導鏡像。描述其過程
1)通過編輯anaconda-ks.cfg文件
2)運行system-config-kickstart
4、寫一個腳本
(1)能接受四個參數:start,stop,restart,status
start:輸出”starting腳本名finished”
…
(2)其他任意參數,均報錯退出
#!/bin/bash
if [ "$1" = "start" ];then
echo "starting $0 finished"
elif [ "$1" = "stop" ];then
echo "stopping $0 finished"
elif [ "$1" = "restart" ];then
echo "restarting $0 finished"
elif [ "$1" = "status" ];then
echo "statusing $0 finished"
else
echo "請輸入start/stop/restart/status"
fi
exit 1
5、寫一個腳本,判斷給定的用戶是否登錄了當前系統
(1)如果登錄了,則顯示用戶登錄,腳本終止
(2)每3秒鐘,查看一次用戶是否登錄
#!/bin/bash
while true;do
        if `who | grep "$1" &>null `;then
        echo "$1 is alreadly loged in"
        break
        else
        echo "$1 is not loged in"
        fi
        sleep 3
done
6、寫一個腳本,顯示用戶選定要查看的信息
cpu)display cpu info
mem)display memory info
disk)display disk info
quit)quit

#!/bin/bash
cat << EOF
cpu) display cpu info
mem) display memory info
disk) display disk info
quit) quit
EOF
while true;do
read -p "please choose:" choose
case ${choose} in
cpu)
    lscpu
    ;;
mem)
    free -m
    ;;
disk)
    df -HT
    ;;
quit)
    exit
    ;;
*)
    echo “Error!Please choose again!!”
    continue

esac
done
7、寫一個腳本
(1)用函數實現返回一個用戶的UID和SHELL;用戶名通過參數傳遞而來
(2)提示用戶輸入一個用戶或輸入”quit”退出
當輸入的是用戶名,則調用函數顯示用戶信息;
當用戶輸入quit,則退出腳本;進一步地:顯示鍵入的用戶相關信息后,再次提醒輸出用戶名或quit
#!/bin/bash
#!/bin/bash
#查詢用戶及shell 
#author:dodo 

user_id () {

if id $username &> /dev/null; then
             grep "^$username" /etc/passwd | awk -F: '{print "UID is:"$3, " Shell is:"$7}'
else
         echo "none user" 
fi

}

while true;do
read -p "please enter username or quit:" username
if [ $username == "quit" ];then
       exit 0
    else
       user_id $username
fi
done

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87981

(1)
N27_flypigN27_flypig
上一篇 2017-10-21 18:50
下一篇 2017-10-21 21:52

相關推薦

  • CentOS6/7下不關機識別新添加的scsi硬盤

    1)需求說明 在虛擬機中,我們在服務器開機的狀態下添加新的磁盤或者說從存儲上映射某個LUN區域給服務器,不重啟系統的情況下,往往不能夠直接識別到磁盤,在遇到這種情況的時候,我們可以讓系統重新掃描讓服務器重新識別到磁盤。 2)處理步驟 下面看一下在系統不重啟的情況,如何讓系統認識新的磁盤,并能對其分區與格式化 1、在開機狀態下新增磁盤 2、執行下面的命令 ec…

    Linux干貨 2016-07-22
  • OpenSSL

    一、什么是OpenSSL 在電腦網絡上,OpenSSL是一個開放源代碼的軟件庫包,應用程序可以使用這個包來進行安全通訊,避免竊聽,同時確認另一端連接者的身份。這個包廣泛被應用在互聯網的網頁服務器上。其主要庫是以C語言所寫成,實現了基本的加密功能,實現了SSL與TLS協議。 OpenSSL由三部分組成:     libencryp…

    Linux干貨 2016-04-25
  • Linux幫助文件的使用、history變量的使用和FHS

    怎樣利用幫助文件來查詢想要了解的信息? 這里以通過查找幫助文件來修改登陸信息為例子, 登陸的時候,我們可以看到CentOS的的版本和內核信息, 當我們查看該相關文件的時候,會發現,里面的文檔和顯示的不一致,由此可以了解到,該文檔是調用某些參數來實現顯示CentOS的版本和內核信息。 這個時候,我們該怎樣去查看issue文檔的相關信息? 首先我們可以查看一下通…

    Linux干貨 2016-08-04
  • 手動編譯內核+busybox+dropbear+nginx

    我們需要先在宿主機上添加一個磁盤,然后,把這個磁盤做好分區和文件系統: fdisk /dev/sdb 創建第一個分區: n p 1 +512M 創建第二個分區: n p 2 +10G 保存退出: w 為分區提供文件系統: kpartx /dev/sdb 為分區提供文件系統: mke2fs -t ext4 /dev/sd…

    Linux干貨 2015-09-24
  • 磁盤管理(1)

    1、磁盤結構(機械硬盤) (1)磁盤構成: 磁臂(機械手臂):連接并固定磁頭 馬達(電機):可以轉動盤片,讓磁臂上的磁頭可以在盤片上讀寫數據 扇區:最小的物理存儲單位,每個扇區為512bytes 磁頭:可以讀寫數據 盤片:主要記錄數據 柱面:將扇區組成一個圓就是柱面,柱面是分區的最小單位 (2)磁盤接口 并口:IDE  SCSI&nbsp…

    Linux干貨 2016-08-30
  • 11.網絡解析和網絡加密

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 加密過程 1.使用單向加密算法,提取A的文件的特征碼。 2.使用A的私鑰對提取出來的特征碼進行加密,把加密后的特征碼附加在A的文件的后面。 3.使用對稱加密對剛剛的A的文件和加密后的特征碼進行加密,生成對稱加密密鑰 4.使用B的公鑰對第3步驟的對稱加密的密鑰進行加密,加密后附加在文件的后面。 解密過程 1.使用…

    2017-09-20
欧美性久久久久