⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upgrade

📁 操作系统SunOS 4.1.3版本的源码
💻
字号:
#umask 022HOST=`hostname`CLIENTS="". ./check_test. ./house_keeper. ./script_gen. ./exec_upgrade. ./inoutBIN=/usr/binETC=/usr/etcINC=$USR_TMP/incVOL0=$USR_TMP/vol0VOL_NAMES=$USR_TMP/vol_namesINST_PCK_LST=$USR_TMP/inst_pck_lstNOT_INST_PCK_LST=$USR_TMP/not_inst_pck_lstWORK_PCK_LST=$USR_TMP/work_pck_lstOPENWIN_PCK_LST=$USR_TMP/openwin_pck_lstUPGRDT_PCK_LST=$USR_TMP/upgrdt_pck_lstFOR_UPGR_PCK_LST0=$USR_TMP/for_upgr_pck_lst0FOR_UPGR_PCK_LST_ALL=$USR_TMP/for_upgr_pck_lst_allFOR_UPGR_PCK_LST=$USR_TMP/for_upgr_pck_lstCLIENT_UPGRADE_CANDIDATES=$USR_TMP/client_upgrade_candidatessun4_RELEASE_LST=$USR_TMP/sun4_release_listsun4c_RELEASE_LST=$USR_TMP/sun4c_release_listsun4m_RELEASE_LST=$USR_TMP/sun4m_release_listSUN4_REMOVE_LST=$USR_TMP/sun4_remove_listSUN4C_REMOVE_LST=$USR_TMP/sun4c_remove_listSUN4M_REMOVE_LST=$USR_TMP/sun4m_remove_listMEDIA_FILE=$USR_TMP/media_fileNAME_LIST=$USR_TMP/name_listSERVER_PCK_LIST=$USR_TMP/server_pck_listSERVER_ARCH_LIST=$USR_TMP/server_karch_listRELEASE_LST=$USR_TMP/client_release_listNIS_DIR=/var/ypINETD_CONF=/etc/inetd.confARCH=archPATH=$COM_PLACE:$PATHCAT=catCD=cdCHMOD=chmodCHOWN=chown COMM=comm CP=cpCUT=cutECHO=echoED=edEGREP=egrepEXPR=exprGREP=grepKILL=killLN=lnLS=lsLDCONFIG=ldconfigMORE=moreMKDIR=mkdirMOUNT=mountMV=mvNAWK=nawkPWD=pwdRM=rmSED=sedSORT=sortSUM=sumSYSLOGD=syslogdSYNC=syncTAR=tarTEE=teeTR=trXDRTOC=xdrtocexport CUT PATH#AARCH=`$ARCH`KARCH=`$ARCH -k`STAND=/usr/kvm/standINSDIR=/etc/install# release currently installedif [ -r $INSDIR/release ]; then    FROM_RELEASE=`sed "s/^.*sunos\.//" $INSDIR/release`    export FROM_RELEASEelse    log_echo "$INSDIR/release not found"    log_echo "$CMD cannot run on $HOST"    cleanup 41fi#FROM_RELEASE=4.1.1#if [ -r $INSDIR/sys_info ]; then    TYPE=`$NAWK -F= '{ if ($1 == "sys_type") print $2}' \				$INSDIR/sys_info`else    log_echo "$INSDIR/sys_info not found"    log_echo "$CMD cannot run on $HOST"    cleanup 42fiINCLUDE=includeTMP_PATH=$USR_TMP/upgradeINCLUDE_PATH=$TMP_PATH/includeSCRIPT_PATH=$TMP_PATH/scriptREPLACE="&"  # 4.1.1/4.1.2 file replaced by 4.1.x file.SAVE_OLD="+" # 4.1.x file replaces 4.1.1/4.1.2 file; 4.1.1/4.1.2 file saved with .4.1.1/.4.1.2 tag.MAKE_NEW="-" # 4.1.1/4.1.2 file is retained; 4.1.x file added with .4.1.x tag.COMMENT="#"BEFORE=beforeAFTER=afterSOS=sosUNTAR=untarDELETE=deleteCD_MOUNT=/usr/etc/install/tar           # cdrom mount pathCD_EXPORT=$CD_MOUNT/export   CD_EXEC=$CD_EXPORT/exec CD_KVM_DIR=$CD_EXEC/kvm#if [ -f $UPGRADE/release ]; then    TO_RELEASE=`$CAT $UPGRADE/release`    export TO_RELEASEelse    log_echo "$UPGRADE/release not found"    cleanup 43fiNEW_VERSION=sunos_`$SED "s/\./_/g" $UPGRADE/release | $TR '[A-Z]' '[a-z]'`#NEW_VERSION=sunos_4_1_3_PALPHA#TO_RELEASE=4.1.2OLD_SUFFIX=".`echo $FROM_RELEASE | $SED "s/\.//g" | $TR '[A-Z]' '[a-z]'`"NEW_SUFFIX=".`echo $TO_RELEASE | $SED "s/\.//g" | $TR '[A-Z]' '[a-z]'`"KARCH_VERSION=${KARCH}_$NEW_VERSIONCD_TOC=$CD_KVM_DIR/$KARCH_VERSION/xdrtoc # cdrom toc pathTOCFILE=$USR_TMP/toc#INCLD=$UPGRADE/incldOPENWINDOW_VERSION=3OPENWINDOWS=openwindows_ROOT_SPACE=2000USR_412usr_szdiff=4100USR_412kvm_szdiff=400USR_412sys_szdiff=300USR_412user_diag_szdiff=600USR_usr_szdiff=6000USR_kvm_szdiff=1000USR_sys_szdiff=650USR_user_diag_szdiff=5250USR_manual_szdiff=110USR_debugging_szdiff=70OW_user_sz=35600OW_prog_sz=24000OW_fonts_sz=10000OW_demo_sz=8100KARCH1=sun4KARCH2=sun4cKARCH3=sun4mtrap 'cleanup 61' 1trap 'cleanup 62' 2trap 'cleanup 63' 3trap 'cleanup 64' 10trap 'cleanup 65' 15if $DUMMY ; then    echo "Performing the dummy upgrade (no upgrade will be performed)."    COALESCE_LIST=$COALESCE_LIST.dummy    $RM -f $COALESCE_LISTelse    check_before    $RM -f $COALESCE_LIST.dummyfi##################################################$DO_VOLATILE_TEST && volatile_testcr_nullfile $COALESCE_LIST$CHMOD a+w $COALESCE_LISTlog_echolog_echo "-------- Starting" $CMD  `date` "--------"log_echoif $VERBOSE ; then    TAR_OPTIONS=xvBpfelse    TAR_OPTIONS=xBpffitest_releaseprint_headerif $INTERACTIVE ; then    log_echo ""    get_yesno answer "Continue "    log_echo $answer    if [ $answer != "yes" ]; then	cleanup 0     fifi# Housekeeping for the /usr/tmp/upgradetmp_house# Read the volatile file list:$RM -rf $VOL0 $VOL_NAMES# $VOL0 list without comments# $VOL_NAMES list without comments and signs#	 (just filenames)$NAWK ' NF == 2 {    if (substr($1, 1, 1) != "#"){        print $1 " " $2 >> "'$VOL0'"	print $2    }} ' $VOLATILE_LIST | $SORT > $VOL_NAMES##################################################sos_file=$SCRIPT_PATH/$SOS$RM -f $sos_file#--------------------------------if [ $TYPE = server ]; then    ./check_install -v    if [ -s  $CLIENT_UPGRADE_CANDIDATES ]; then	if $INTERACTIVE ; then	log_echo ""	if $DUMMY ; then            get_yesno answer "Continue"	else	    log_echo "Before you answer \"yes\" to the following question"	    log_echo "- make sure that all dataless clients of the server $HOST have been upgraded;"	    log_echo "- make sure that all diskless clients of the server $HOST are halted."	    log_echo            get_yesno answer "All listed above diskless clients will be upgraded. Continue"	fi	log_echo $answer	if [ $answer != "yes" ]; then	    cleanup 44 	fi    log_echo ""    fi    fielif [ $TYPE = standalone ]; then    :elif [ $TYPE = dataless ]; then    :elif [ $TYPE = client ]; then    log_echo "Clients may only be upgraded from the server"    cleanup 45else    log_echo "Unknown system type \"$TYPE\" found in $INSDIR/sys_info"    cleanup 46fi#--------------------------------check_space $ROOT_SPACE /if [ $TYPE = dataless ]; then    echo root > $FOR_UPGR_PCK_LSTelse    make_upgrade_listfi#--------------------------------if $INTERACTIVE ; then    log_echo ""    if $DUMMY ; then        get_yesno answer "Start dummy upgrade on $TYPE $HOST"    else        get_yesno answer "Start upgrade on $TYPE $HOST"    fi    log_echo $answer    if [ $answer != "yes" ]; then	    cleanup 47     fi    log_echo ""fi#--------------------------------if [ $TYPE = server ]; then    INTERACTIVE0=$INTERACTIVE    INTERACTIVE=false    if [ -s  $CLIENT_UPGRADE_CANDIDATES ]; then        log_echo        log_echo UPGRADING CLIENTS        . ./upgrade_client     elif [ -d /export/exec/proto.root.sunos.$FROM_RELEASE ]; then	  log_echo "Upgrade root files for clients"	  upgrade_package root /export/exec/proto.root.sunos.$FROM_RELEASE	  log_echo "Rename /export/exec/proto.root.sunos.$FROM_RELEASE to\                /export/exec/proto.root.sunos.$TO_RELEASE"	  if $DUMMY ; then		:	  else		$MV /export/exec/proto.root.sunos.$FROM_RELEASE \            	/export/exec/proto.root.sunos.$TO_RELEASE    	  fi     fi    INTERACTIVE=$INTERACTIVE0    log_echo    log_echo UPGRADING SERVERfi#--------------------------------#$RM -f $COALESCE_LISTuser=falsefor name in `$CAT  $FOR_UPGR_PCK_LST`; do    case $name in    	usr) user=true;;    	sys) if is_sys_loaded $INSDIR/media_file.$AARCH.$KARCH.sunos.$FROM_RELEASE; then    	    	upgrade_package $name    	     elif [ -f $SERVER_ARCH_LIST ] && $GREP -i $name $SERVER_ARCH_LIST >/dev/null; then    	    	 get_package $name                      		 add_sys $INSDIR/media_file.$AARCH.$KARCH.sunos.$FROM_RELEASE              fi;;    	*) if [ ! -f $SERVER_PCK_LIST ] || $GREP -i $name $SERVER_PCK_LIST > /dev/null; then    	    	upgrade_package $name           else            	get_package $name           fi;;    esacdoneif [ $TYPE = server ]; then    if [ -f $INETD_CONF ] ; then	$SED "s@^#tftp	dgram@tftp	dgram@" $INETD_CONF > /tmp/inetd_$$	$MV /tmp/inetd_$$ $INETD_CONF    fifiif [ $TYPE != dataless ] && $OW_space_check ; then    log_echo "Removing everything under $OPENWINHOME"        if $DUMMY ; then	    :        else            $RM -rf $OPENWINHOME/*        fi        for openwin_name in `$CAT $OPENWIN_PCK_LST`; do            upgrade_openwin $openwin_name        donefi# upgrade usr the lastif $user && [ $TYPE != dataless ]; then   upgrade_package usrfi###log_echo "You may need to coalesce the following files / directories manually:"$SED 's@//@/@g' $COALESCE_LIST | $SED 's@//@/@g' > /tmp/clse_$$$SORT -u /tmp/clse_$$ $COALESCE_LIST$RM -f /tmp/clse_$$cat_it $COALESCE_LISTfix_releasefix_linksfor client in $CLIENTS; do    log_echo    log_tab; log_echo "Installing kernel and kadb on client $client"    THE_KARCH=`what_karch $client`    THE_RELEASE=`what_release $client`    ROOT=`find_root $client`    if [ $THE_KARCH = $KARCH1 ]; then	KVMPATH=$KVMPATH1    elif [ $THE_KARCH = $KARCH2 ]; then	KVMPATH=$KVMPATH2    elif [ $THE_KARCH = $KARCH3 ]; then 	KVMPATH=$KVMPATH3    fi    KERNEL=$KVMPATH/stand/$NEW_KERNEL    fix_kernel $KERNEL $ROOT    fix_kadb $KVMPATH/stand/kadb $ROOT    log_tab; log_echo "Upgrade sbin on client $client"    log_tab; fix_sbin $ROOTdoneif [ $TYPE = server ]; then   if [ -s  $CLIENT_UPGRADE_CANDIDATES ]; then      upgrade_bootblocks    else      log_echo "Create the /tftpboot/boot.$KARCH.sunos.$TO_RELEASE."      if $DUMMY ; then        :      else         $CP /export/exec/kvm/$KARCH/stand/boot.$KARCH \             /tftpboot/boot.$KARCH.sunos.$TO_RELEASE        if [ $? = 0 ]; then	  $RM /tftpboot/boot.$KARCH.sunos.$FROM_RELEASE        fi      fi    fifiif [ $TYPE = dataless ]; then    install_vmunix_at_dataless    install_kadb_at_dataless    install_boot_block_at_dataless    fix_sbin_at_dataless    upgrade_fstabelse    install_vmunix $STAND/$NEW_KERNEL    install_kadb $STAND    install_boot_block    fix_sbinfilog_echo "Delete unused old files"$SORT -u  $SCRIPT_PATH/*.$DELETE > $SCRIPT_PATH/$DELETE	2>/dev/nullif $DUMMY ; then    cat_it $SCRIPT_PATH/$DELETEelse    . $SCRIPT_PATH/$DELETEfi# Special treatment for /usr/lib/adbif $DUMMY ; then    :elif [ ! -h /usr/lib/adb ]; then    $RM -rf /usr/lib/adb    $LN -s ../kvm/adb /usr/lib/adbfi######## For updating adb from 4.1.3x --> 4.1.3y#if $DUMMY ; then    :else    log_echo "Updating adb directory..."    ($RM -rf /usr/kvm/adb; \    $TAR tf /usr/etc/install/tar/export/exec/kvm/`arch -k`_$NEW_VERSION/kvm | $GREP adb | $GREP -v stand > /tmp/adb; \    $CD /usr/kvm; \    $TAR xvf /usr/etc/install/tar/export/exec/kvm/`arch -k`_$NEW_VERSION/kvm -I /tmp/adb)fi ##### End #log_echo "Log is recorded in the file $LOG"log_echo "-------- Exiting" $CMD  `date` "--------"if $DUMMY ; then    log_echo "List of volatile files / directories :"    log_echo "$COALESCE_LIST"    cleanup 0fi#Final operations for the real upgrade#To prevent creation of core when user haltslog_echo "List of actually updated volatile files / directories :"log_echo "$COALESCE_LIST"log_echo ""if [ $TYPE = dataless ]; then    log_echo "You may halt $HOST now, and reboot it after server upgrade."else    log_echo "You may halt and reboot $HOST now."fi$SYNC; $SYNCcleanup 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -