bashスクリプト - tetsuyaf1100/hello-world GitHub Wiki
Trap サンプル
#!/bin/bash
set -eu
set -o pipefail
set -o errtrace
file_name=$BASH_SOURCE
trap 'echo "Error--> File: ${file_name}. Line: ${LINENO}. Command: ${BASH_COMMAND}. Exit code: $?"' ERR
. ./sub.sh
sub
#!/bin/bash
set -eu
set -o pipefail
set -o errtrace
file_name=$BASH_SOURCE
trap 'echo "Error--> File: ${file_name}. Line: ${LINENO}. Command: ${BASH_COMMAND}. Exit code: $?"' ERR
function sub () {
false
}
Yes/No サンプル
#!/bin/bash
function confirm () {
echo -n "よろしいですか? [Y/n]: "
read ANS
case $ANS in
[Yy]* )
:
;;
* )
exit 1
;;
esac
}
confirm
tmux サンプル
#!/bin/bash
tmux split-window -v -p 30
tmux split-window -h -p 66
tmux split-window -h -p 50
rpm build サンプル
#!/bin/bash +x
# show usage
if [ $# -lt 1 ]; then
echo "usage: $0 SPEC_FILES"
exit 0
fi
SPEC_FILES=$*
for specfile in $SPEC_FILES; do
rpmbuild -D "_topdir ${PWD}/rpmbuild" -ba "$specfile"
done
wheel build サンプル
#!/bin/bash
# show usage
if [ $# -lt 2 ]; then
echo "usage: $0 TARGET_PRODUCT TARGET_BRANCH REQUIREMENTS"
exit 0
fi
TARGET_PRODUCT=$1; shift
TARGET_BRANCH=$1; shift
REQUIREMENTS=$*
GIT_CLONE_URL=""
EXTRA_INDEX_URL=""
PYTHON_EXE="/usr/bin/python3"
VIRTUALENV_NAME="venv"
unset PIP_INDEX_URL
export PIP_TRUSTED_HOST=""
export PYCURL_SSL_LIBRARY=""
. "$(command -v virtualenvwrapper.sh)"
git clone "${GIT_CLONE_URL}" -b "${TARGET_BRANCH}"
cd "${TARGET_PRODUCT}" || exit
mkvirtualenv --clear --no-download -p "${PYTHON_EXE}" "${VIRTUALENV_NAME}"
mkdir pkgs
for REQUIREMENT in $REQUIREMENTS; do
pip download -d ./pkgs -r "${REQUIREMENT}" --extra-index-url ${EXTRA_INDEX_URL} || exit 1
pip install -r "${REQUIREMENT}" --no-index -f pkgs || exit 1
pip wheel --no-index --no-deps -w ./wheelhouse ./pkgs/*
done
docker pool 監視サンプル
#!/bin/bash
LOGFILE="/var/log/lvs.log"
LIMIT_DOCKER_POOL="80"
lvs=$(lvs)
lvs_data=$(echo "$lvs" | awk 'NR==2')
date=$(date '+%Y%m%d')
echo "$date $lvs_data" >> $LOGFILE
status=$(echo "$(lvs | awk '/docker-pool/ { print $5}') <= $LIMIT_DOCKER_POOL" | bc)
if [ $status -eq 1 ]; then
# echo "ok"
exit 0
fi
export MAILRC=~/.mail.rc
to=""
subject="[ENV][ALERT][$(hostname)] Warning of docker-pool resource"
cat <<EOF | mailx -n -s "$subject" "$to"
$lvs
EOF
exit 1