404

[ Avaa Bypassed ]




Upload:

Command:

botdev@13.59.173.30: ~ $
#!/bin/bash
#
# Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
#
# This file is part of the lvm2 package.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

#
# Edit an lvm.conf file to adjust various properties
#

# cluster with clvmd and/or locking lib?
HANDLE_CLUSTER=0

# cluster without clvmd?
HANDLE_HALVM=0

# also enable services appropriately (lvmetad, clvmd)?
HANDLE_SERVICES=0

# also enable cmirrord service in addition?
HANDLE_MIRROR_SERVICE=0

# also start/start services in addition to enabling/disabling them?
START_STOP_SERVICES=0

function usage
{
    echo "Usage: $0 <command>"
    echo ""
    echo "Commands:"
    echo "Enable clvm:  --enable-cluster [--lockinglibdir <dir>] [--lockinglib <lib>]"
    echo "Disable clvm: --disable-cluster"
    echo "Enable halvm: --enable-halvm"
    echo "Disable halvm: --disable-halvm"
    echo "Set locking library: --lockinglibdir <dir> [--lockinglib <lib>]"
    echo ""
    echo "Global options:"
    echo "Config file location: --file <configfile>"
    echo "Set services: --services [--mirrorservice] [--startstopservices]"
    echo ""
    echo "Use the separate command 'lvmconfig' to display configuration information"
}

function set_default_use_lvmetad_var
{
	eval "$(lvm dumpconfig --type default global/use_lvmetad 2>/dev/null)"
	if [ "$?" != 0 ]; then
		USE_LVMETAD=0
	else
                USE_LVMETAD=$use_lvmetad
	fi
}

function parse_args
{
    while [ -n "$1" ]; do
        case "$1" in
            --enable-cluster)
                LOCKING_TYPE=3
                USE_LVMETAD=0
                HANDLE_CLUSTER=1
                shift
                ;;
            --disable-cluster)
                LOCKING_TYPE=1
                set_default_use_lvmetad_var
                HANDLE_CLUSTER=1
                shift
                ;;
            --enable-halvm)
                LOCKING_TYPE=1
		USE_LVMETAD=0
                HANDLE_HALVM=1
		shift
                ;;
            --disable-halvm)
                LOCKING_TYPE=1
                set_default_use_lvmetad_var
                HANDLE_HALVM=1
		shift
                ;;
            --lockinglibdir)
                if [ -n "$2" ]; then
                    LOCKINGLIBDIR=$2
                    shift 2
                else
                    usage
                    exit 1
                fi
                HANDLE_CLUSTER=1
                ;;
            --lockinglib)
                if [ -n "$2" ]; then
                    LOCKINGLIB=$2
                    shift 2
                else
                    usage
                    exit 1
                fi
                HANDLE_CLUSTER=1
                ;;
            --file)
                if [ -n "$2" ]; then
                    CONFIGFILE=$2
                    shift 2
                else
                    usage
                    exit 1
                fi
                ;;
            --services)
                HANDLE_SERVICES=1
                shift
                ;;
            --mirrorservice)
                HANDLE_MIRROR_SERVICE=1
                shift
                ;;
            --startstopservices)
                START_STOP_SERVICES=1
                shift
                ;;
            *)
                usage
                exit 1
        esac
    done

    if [ -n "$LOCKINGLIBDIR" ] || [ -n "$LOCKINGLIB" ]; then
        LOCKING_TYPE=2
        USE_LVMETAD=0
    fi
}

function validate_args
{
    [ -z "$CONFIGFILE" ] && CONFIGFILE="/etc/lvm/lvm.conf"

    if [ ! -f "$CONFIGFILE" ]
            then
            echo "$CONFIGFILE does not exist"
            exit 10
    fi

    if [ "$HANDLE_CLUSTER" = 1 ] && [ "$HANDLE_HALVM" = 1 ]; then
        echo "Either HA LVM or cluster method may be used at one time"
	    exit 18
    fi

    if [ "$HANDLE_SERVICES" = 0 ]; then
        if [ "$HANDLE_MIRROR_SERVICE" = 1 ]; then
            echo "--mirrorservice may be used only with --services"
            exit 19
        fi
        if [ "$START_STOP_SERVICES" = 1 ]; then
            echo "--startstopservices may be used only with --services"
            exit 19
        fi
    fi

    if [ -z "$LOCKING_TYPE" ] && [ -z "$LOCKINGLIBDIR" ]; then
        usage
        exit 1
    fi

    if [ -n "$LOCKINGLIBDIR" ]; then

        if [ "${LOCKINGLIBDIR:0:1}" != "/" ]
            then
            echo "Prefix must be an absolute path name (starting with a /)"
            exit 12
        fi

        if [ -n "$LOCKINGLIB" ] && [ ! -f "$LOCKINGLIBDIR/$LOCKINGLIB" ]
            then
            echo "$LOCKINGLIBDIR/$LOCKINGLIB does not exist, did you do a \"make install\" ?"
            exit 11
        fi

    fi

    if [ "$LOCKING_TYPE" = 1 ] ; then
	if [ -n "$LOCKINGLIBDIR" ] || [ -n "$LOCKINGLIB" ]; then
		echo "Superfluous locking lib parameter, ignoring"
	fi
    fi
}

umask 0077

parse_args "$@"

validate_args


SCRIPTFILE=/etc/lvm/.lvmconf-script.tmp
TMPFILE=/etc/lvm/.lvmconf-tmp.tmp


# Flags so we know which parts of the file we can replace and which need
# adding. These are return codes from grep, so zero means it IS present!
have_type=1
have_dir=1
have_library=1
have_use_lvmetad=1
have_global=1

grep -q '^[[:blank:]]*locking_type[[:blank:]]*=' "$CONFIGFILE"
have_type=$?

grep -q '^[[:blank:]]*library_dir[[:blank:]]*=' "$CONFIGFILE"
have_dir=$?

grep -q '^[[:blank:]]*locking_library[[:blank:]]*=' "$CONFIGFILE"
have_library=$?

grep -q '^[[:blank:]]*use_lvmetad[[:blank:]]*=' "$CONFIGFILE"
have_use_lvmetad=$?

# Those options are in section "global {" so we must have one if any are present.
if [ "$have_type" = 0 ] || [ "$have_dir" = 0 ] || [ "$have_library" = 0 ] || [ "$have_use_lvmetad" = 0 ]
then

    # See if we can find it...
    grep -q '^[[:blank:]]*global[[:blank:]]*{' $CONFIGFILE
    have_global=$?

    if [ "$have_global" = 1 ] 
	then
	echo "global keys but no 'global {' found, can't edit file"
	exit 13
    fi
fi

if [ "$LOCKING_TYPE" = 2 ] && [ -z "$LOCKINGLIBDIR" ] && [ "$have_dir" = 1 ]; then
	echo "no library_dir specified in $CONFIGFILE"
	exit 16
fi

# So if we don't have "global {" we need to create one and 
# populate it

if [ "$have_global" = 1 ]
then
    if [ -z "$LOCKING_TYPE" ]; then
	LOCKING_TYPE=1
    fi
    if [ "$LOCKING_TYPE" = 3 ] || [ "$LOCKING_TYPE" = 2 ]; then
        cat "$CONFIGFILE" - <<EOF > "$TMPFILE"
global {
    # Enable locking for cluster LVM
    locking_type = $LOCKING_TYPE
    library_dir = "$LOCKINGLIBDIR"
    # Disable lvmetad in cluster
    use_lvmetad = 0
EOF
        if [ $? != 0 ]
        then
    	    echo "failed to create temporary config file, $CONFIGFILE not updated"
	    exit 14
        fi
	if [ -n "$LOCKINGLIB" ]; then
	    cat - <<EOF >> "$TMPFILE"
    locking_library = "$LOCKINGLIB"
EOF
            if [ $? != 0 ]
            then
	        echo "failed to create temporary config file, $CONFIGFILE not updated"
	        exit 16
            fi
	fi
	cat - <<EOF >> "$TMPFILE"
}
EOF
    fi # if we aren't setting cluster locking, we don't need to create a global section

    if [ $? != 0 ]
    then
	echo "failed to create temporary config file, $CONFIGFILE not updated"
	exit 17
    fi
else
    #
    # We have a "global {" section, so add or replace the
    # locking entries as appropriate
    #

    if [ -n "$LOCKING_TYPE" ]; then
	if [ "$have_type" = 0 ] 
	then
	    SEDCMD=" s/^[[:blank:]]*locking_type[[:blank:]]*=.*/\ \ \ \ locking_type = $LOCKING_TYPE/g"
	else
	    SEDCMD=" /global[[:blank:]]*{/a\ \ \ \ locking_type = $LOCKING_TYPE"
	fi
    fi

    if [ -n "$LOCKINGLIBDIR" ]; then
        if [ "$have_dir" = 0 ] 
            then
            SEDCMD="${SEDCMD}\ns'^[[:blank:]]*library_dir[[:blank:]]*=.*'\ \ \ \ library_dir = \"$LOCKINGLIBDIR\"'g"
        else
            SEDCMD="${SEDCMD}\n/global[[:blank:]]*{/a\ \ \ \ library_dir = \"$LOCKINGLIBDIR\""
        fi
    fi

    if [ -n "$LOCKINGLIB" ]; then
        if [ "$have_library" = 0 ]
            then
            SEDCMD="${SEDCMD}\ns/^[[:blank:]]*locking_library[[:blank:]]*=.*/\ \ \ \ locking_library = \"$LOCKINGLIB\"/g"
        else
            SEDCMD="${SEDCMD}\n/global[[:blank:]]*{/a\ \ \ \ locking_library = \"$LOCKINGLIB\""
        fi
    fi

    if [ "$have_use_lvmetad" = 0 ]
    then
        SEDCMD="${SEDCMD}\ns'^[[:blank:]]*use_lvmetad[[:blank:]]*=.*'\ \ \ \ use_lvmetad = $USE_LVMETAD'g"
    else
        SEDCMD="${SEDCMD}\n/global[[:blank:]]*{/a\ \ \ \ use_lvmetad = $USE_LVMETAD"
    fi

    echo -e "$SEDCMD" > "$SCRIPTFILE"
    sed  <"$CONFIGFILE" >"$TMPFILE" -f "$SCRIPTFILE"
    if [ $? != 0 ]
    then
	echo "sed failed, $CONFIGFILE not updated"
	exit 15
    fi
fi

# Now we have a suitably editted config file in a temp place,
# backup the original and copy our new one into place.

cp "$CONFIGFILE" "$CONFIGFILE.lvmconfold"
if [ $? != 0 ]
    then
    echo "failed to backup old config file, $CONFIGFILE not updated"
    exit 2
fi

cp "$TMPFILE" "$CONFIGFILE"
if [ $? != 0 ]
    then
    echo "failed to copy new config file into place, check $CONFIGFILE is still OK"
    exit 3
fi

rm -f "$SCRIPTFILE" "$TMPFILE"

function set_service {
    local type=$1
    local action=$2
    shift 2

    if [ "$type" = "systemd" ]; then
        if [ "$action" = "activate" ]; then
            for i in "$@"; do
                unset LoadState
                eval "$($SYSTEMCTL_BIN show "$i" -p LoadState 2>/dev/null)"
                test  "$LoadState" = "loaded" || continue
                $SYSTEMCTL_BIN enable "$i"
                if [ "$START_STOP_SERVICES" = 1 ]; then
                    $SYSTEMCTL_BIN start "$i"
                fi
            done
        elif [ "$action" = "deactivate" ]; then
            for i in "$@"; do
                unset LoadState
                eval "$($SYSTEMCTL_BIN show "$i" -p LoadState 2>/dev/null)"
                test  "$LoadState" = "loaded" || continue
                "$SYSTEMCTL_BIN" disable "$i"
                if [ "$START_STOP_SERVICES" = 1 ]; then
                    "$SYSTEMCTL_BIN" stop "$i"
                fi
            done
        fi
    elif [ "$type" = "sysv" ]; then
        if [ "$action" = "activate" ]; then
            for i in "$@"; do
                "$CHKCONFIG_BIN" --list "$i" > /dev/null || continue
                "$CHKCONFIG_BIN" "$i" on
                if [ "$START_STOP_SERVICES" = 1 ]; then
                    "$SERVICE_BIN" "$i" start
                fi
            done
        elif [ "$action" = "deactivate" ]; then
            for i in "$@"; do
                "$CHKCONFIG_BIN" --list "$i" > /dev/null  || continue
                if [ "$START_STOP_SERVICES" = 1 ]; then
                    "$SERVICE_BIN" "$i" stop
                fi
                "$CHKCONFIG_BIN" "$i" off
            done
        fi
    fi
}

# Start/stop and enable/disable services if needed.

if [ "$HANDLE_SERVICES" = 1 ]; then

    SYSTEMCTL_BIN=$(which systemctl 2>/dev/null)
    CHKCONFIG_BIN=$(which chkconfig 2>/dev/null)
    SERVICE_BIN=$(which service 2>/dev/null)

    # Systemd services
    if [ -n "$SYSTEMCTL_BIN" ]; then
        if [ "$USE_LVMETAD" = 0 ]; then
            set_service systemd deactivate lvm2-lvmetad.service lvm2-lvmetad.socket
        else
            set_service systemd activate lvm2-lvmetad.socket
        fi

        if [ "$LOCKING_TYPE" = 3 ]; then
            set_service systemd activate lvm2-cluster-activation.service
            if [ "$HANDLE_MIRROR_SERVICE" = 1 ]; then
                set_service activate lvm2-cmirrord.service
            fi
        else
            set_service systemd deactivate lvm2-cluster-activation.service
            if [ "$HANDLE_MIRROR_SERVICE" = 1 ]; then
                set_service systemd deactivate lvm2-cmirrord.service
            fi
        fi

    # System V init scripts
    elif [ -n "$SERVICE_BIN" ] && [ -n "$CHKCONFIG_BIN" ]; then
        if [ "$USE_LVMETAD" = 0 ]; then
            set_service sysv deactivate lvm2-lvmetad
        else
            set_service sysv activate lvm2-lvmetad
        fi

        if [ "$LOCKING_TYPE" = 3 ]; then
            set_service sysv activate clvmd
            if [ "$HANDLE_MIRROR_SERVICE" = 1 ]; then
                set_service sysv activate cmirrord
            fi
        else
            set_service sysv deactivate clvmd
            if [ "$HANDLE_MIRROR_SERVICE" = 1 ]; then
                set_service sysv deactivate cmirrord
            fi
        fi

    # None of the service tools found, error out
    else
        echo "Missing tools to handle services"
        exit 20
    fi
fi

Filemanager

Name Type Size Permission Actions
acpi_available File 112 B 0755
agetty File 55.23 KB 0755
apm_available File 81 B 0755
apparmor_parser File 1.41 MB 0755
badblocks File 26.01 KB 0755
blkdeactivate File 14.49 KB 0755
blkdiscard File 26.08 KB 0755
blkid File 86.11 KB 0755
blockdev File 38.07 KB 0755
brctl File 30.08 KB 0755
bridge File 86.16 KB 0755
capsh File 17.99 KB 0755
cfdisk File 94.44 KB 0755
cgdisk File 182.17 KB 0755
chcpu File 22.07 KB 0755
crda File 9.99 KB 0755
cryptdisks_start File 1.11 KB 0755
cryptdisks_stop File 1.16 KB 0755
cryptsetup File 86.23 KB 0755
cryptsetup-reencrypt File 80.96 KB 0755
ctrlaltdel File 18.07 KB 0755
debugfs File 217.47 KB 0755
depmod File 146.18 KB 0755
devlink File 78.16 KB 0755
dhclient File 488.42 KB 0755
dhclient-script File 15.25 KB 0755
dmeventd File 46.08 KB 0755
dmsetup File 158.8 KB 0755
dmstats File 158.8 KB 0755
dosfsck File 58.08 KB 0755
dosfslabel File 54.08 KB 0755
dumpe2fs File 26.08 KB 0755
e2fsck File 306.72 KB 0755
e2image File 34.08 KB 0755
e2label File 102.25 KB 0755
e2undo File 18.07 KB 0755
ebtables File 5.99 KB 0755
ebtables-restore File 9.99 KB 0755
ebtables-save File 1.63 KB 0755
ethtool File 338.9 KB 0755
fatlabel File 54.08 KB 0755
fdisk File 122.13 KB 0755
findfs File 10.07 KB 0755
fixparts File 62.17 KB 0755
fsadm File 23.5 KB 0755
fsck File 46.13 KB 0755
fsck.cramfs File 34.11 KB 0755
fsck.ext2 File 306.72 KB 0755
fsck.ext3 File 306.72 KB 0755
fsck.ext4 File 306.72 KB 0755
fsck.fat File 58.08 KB 0755
fsck.minix File 90.1 KB 0755
fsck.msdos File 58.08 KB 0755
fsck.vfat File 58.08 KB 0755
fsck.xfs File 433 B 0755
fsfreeze File 10.07 KB 0755
fstab-decode File 5.99 KB 0755
fstrim File 42.08 KB 0755
gdisk File 190.17 KB 0755
getcap File 9.99 KB 0755
getpcaps File 9.99 KB 0755
getty File 55.23 KB 0755
halt File 178.08 KB 0755
hdparm File 128.18 KB 0755
hwclock File 58.19 KB 0755
ifconfig File 77.11 KB 0755
init File 1.54 MB 0755
insmod File 146.18 KB 0755
installkernel File 2.58 KB 0755
integritysetup File 39.66 KB 0755
ip File 545.12 KB 0755
ip6tables File 92.74 KB 0755
ip6tables-restore File 92.74 KB 0755
ip6tables-save File 92.74 KB 0755
ipmaddr File 17.99 KB 0755
iptables File 92.74 KB 0755
iptables-restore File 92.74 KB 0755
iptables-save File 92.74 KB 0755
iptunnel File 21.99 KB 0755
iscsi-iname File 9.99 KB 0755
iscsi_discovery File 5.16 KB 0755
iscsiadm File 381.95 KB 0755
iscsid File 398.15 KB 0755
iscsistart File 358.13 KB 0755
isosize File 22.08 KB 0755
iw File 199.41 KB 0755
kbdrate File 9.99 KB 0755
killall5 File 22.08 KB 0755
ldconfig File 387 B 0755
ldconfig.real File 1001.67 KB 0755
logsave File 10 KB 0755
losetup File 82.19 KB 0755
lsmod File 146.18 KB 0755
lvchange File 2.42 MB 0755
lvconvert File 2.42 MB 0755
lvcreate File 2.42 MB 0755
lvdisplay File 2.42 MB 0755
lvextend File 2.42 MB 0755
lvm File 2.42 MB 0755
lvmconf File 12.55 KB 0755
lvmconfig File 2.42 MB 0755
lvmdiskscan File 2.42 MB 0755
lvmdump File 10.07 KB 0755
lvmetad File 82.13 KB 0755
lvmpolld File 70.45 KB 0755
lvmsadc File 2.42 MB 0755
lvmsar File 2.42 MB 0755
lvreduce File 2.42 MB 0755
lvremove File 2.42 MB 0755
lvrename File 2.42 MB 0755
lvresize File 2.42 MB 0755
lvs File 2.42 MB 0755
lvscan File 2.42 MB 0755
mdadm File 577.4 KB 0755
mdmon File 321.24 KB 0755
mii-tool File 18.46 KB 0755
mkdosfs File 34.5 KB 0755
mke2fs File 126.31 KB 0755
mkfs File 10.07 KB 0755
mkfs.bfs File 30.08 KB 0755
mkfs.cramfs File 34.01 KB 0755
mkfs.ext2 File 126.31 KB 0755
mkfs.ext3 File 126.31 KB 0755
mkfs.ext4 File 126.31 KB 0755
mkfs.fat File 34.5 KB 0755
mkfs.minix File 78.09 KB 0755
mkfs.msdos File 34.5 KB 0755
mkfs.ntfs File 78.11 KB 0755
mkfs.vfat File 34.5 KB 0755
mkfs.xfs File 423.52 KB 0755
mkhomedir_helper File 18.02 KB 0755
mkntfs File 78.11 KB 0755
mkswap File 78.08 KB 0755
modinfo File 146.18 KB 0755
modprobe File 146.18 KB 0755
mount.fuse File 9.99 KB 0755
mount.lowntfs-3g File 106.67 KB 0755
mount.ntfs File 142.7 KB 0755
mount.ntfs-3g File 142.7 KB 0755
mount.vmhgfs File 42.16 KB 0755
nameif File 14.14 KB 0755
ntfsclone File 54.12 KB 0755
ntfscp File 34.1 KB 0755
ntfslabel File 26.1 KB 0755
ntfsresize File 70.12 KB 0755
ntfsundelete File 50.1 KB 0755
on_ac_power File 2.16 KB 0755
pam_extrausers_chkpwd File 34 KB 2755
pam_extrausers_update File 34 KB 0755
pam_tally File 10.01 KB 0755
pam_tally2 File 14.01 KB 0755
parted File 78.09 KB 0755
partprobe File 10.07 KB 0755
pivot_root File 10.07 KB 0755
plipconfig File 10 KB 0755
plymouthd File 90.25 KB 0755
poweroff File 178.08 KB 0755
pvchange File 2.42 MB 0755
pvck File 2.42 MB 0755
pvcreate File 2.42 MB 0755
pvdisplay File 2.42 MB 0755
pvmove File 2.42 MB 0755
pvremove File 2.42 MB 0755
pvresize File 2.42 MB 0755
pvs File 2.42 MB 0755
pvscan File 2.42 MB 0755
rarp File 32.45 KB 0755
raw File 14.07 KB 0755
reboot File 178.08 KB 0755
regdbdump File 9.99 KB 0755
resize2fs File 58.07 KB 0755
rmmod File 146.18 KB 0755
route File 64.3 KB 0755
rtacct File 40.13 KB 0755
rtmon File 50 KB 0755
runlevel File 178.08 KB 0755
runuser File 42.07 KB 0755
setcap File 9.99 KB 0755
setvtrgb File 14.13 KB 0755
sfdisk File 106.08 KB 0755
sgdisk File 174.17 KB 0755
shadowconfig File 885 B 0755
shutdown File 178.08 KB 0755
slattach File 40.45 KB 0755
start-stop-daemon File 35.1 KB 0755
sulogin File 46.08 KB 0755
swaplabel File 14.07 KB 0755
swapoff File 18.07 KB 0755
swapon File 46.08 KB 0755
switch_root File 14.07 KB 0755
sysctl File 22.07 KB 0755
tc File 453.79 KB 0755
telinit File 178.08 KB 0755
tipc File 53.99 KB 0755
tune2fs File 102.25 KB 0755
udevadm File 574.4 KB 0755
umount.udisks2 File 9.99 KB 0755
unix_chkpwd File 34 KB 2755
unix_update File 34 KB 0755
ureadahead File 34.34 KB 0755
veritysetup File 35.45 KB 0755
vgcfgbackup File 2.42 MB 0755
vgcfgrestore File 2.42 MB 0755
vgchange File 2.42 MB 0755
vgck File 2.42 MB 0755
vgconvert File 2.42 MB 0755
vgcreate File 2.42 MB 0755
vgdisplay File 2.42 MB 0755
vgexport File 2.42 MB 0755
vgextend File 2.42 MB 0755
vgimport File 2.42 MB 0755
vgimportclone File 2.42 MB 0755
vgmerge File 2.42 MB 0755
vgmknodes File 2.42 MB 0755
vgreduce File 2.42 MB 0755
vgremove File 2.42 MB 0755
vgrename File 2.42 MB 0755
vgs File 2.42 MB 0755
vgscan File 2.42 MB 0755
vgsplit File 2.42 MB 0755
wipefs File 38.08 KB 0755
wpa_action File 1.69 KB 0755
wpa_cli File 135.74 KB 0755
wpa_supplicant File 2.16 MB 0755
xfs_repair File 631.16 KB 0755
xtables-multi File 92.74 KB 0755
zramctl File 90.19 KB 0755