全文検索:
- 24 バックアップシェル(backup.sh)
- バックアップシェル(backup.sh) ====== Cronでバックアップ用シェルのメモ <code> #!/bin/bash BACKUP_DIR=/home/backups BACKUP_LIS... fi done < $BKLIST } rsync_dir exit; </code> ===== conf file ===== <code> # cat /home/backups/conf/host_name ## directory rsync /var/www/vhos... mysql:all ## mysqldump each db #mysql:hogedb </code> ===== Cron ===== <code> # crontab -l PATH=/sbi
- 26 pgrepで2重起動防止
- ====== 26 pgrepで2重起動防止 ====== <code> function IsRunning() { if [ $$ -ne $(pgrep -fo "$0") ]; then echo "起動済みです。" exit 1 fi } </code> {{tag>bash}}
- 01 ファイルの指定行を抜き出す
- ===== 指定行を表示 ===== これで、hogehoge.confの100行目を表示 <code console> $ sed -n 100p /etc/hogehoge.conf </code> ===== 指定行間を表示 ===== これで、hogehoge.confの100行目~120行目を表示 <code console> $ sed -n 100,120p /etc/hogehoge.conf </code> ===== 指定行目以降を表示 ===== これで100行目以降を表示 <code> $ t
- 23 bash split
- HOGE=aaaa,bbbb,ccc,dddd LIST=(${HOGE//,/ }) <code> $ HOGE=aaaa,bbbb,ccc,dddd $ LIST=(${HOGE//,/ }) ... echo ${LIST[@]} aaaa bbbb ccc dddd $ echo ${LIST[0]} aaaa $ echo ${LIST[1]} bbbb </code> {{tag>bash}}
- 22 Bash flock 2重起動防止
- h flock 2重起動防止 ====== ===== Cronで実行する場合 ===== <code> flock -n /tmp/somthing.lock something.sh </code> ==== 実行例 ==== <code| console1> $ flock -n /tmp/flock.lock sleep 360 </code> 「-n」オプションだと、実行せずに終了します。 <code| console2> $ floc
- 21 Bash時間の比較
- の比較 ====== ===== 最終更新から24時間以上経っているかチェック ===== <code> if [ $(( $(date +%s)0 - $(stat -c %Y FILE)0 )) -... t $((60 * 60 * 24)) ];then echo '24時間以上経過' fi </code> <code> if [ "$(find FILE -mmin -$((60*24)) | wc -l)" -eq 0 ];then echo '24時間以上経過' fi </code> {{tag>bash}}
- 15 awkでカウント
- ==== awkを使って行数のカウントを行ってみる ==== 下記のリストを利用 ==== <code console> $ cat list A B C D E F G H I C D C </code> ==== どの文字列が何個あるのか出してみる ==== <code console> $ cat a | awk '{count[$0]++} END {for(i in count) {print ... : 3個 D : 2個 E : 1個 F : 1個 G : 1個 H : 1個 I : 1個 </code> ==== 2個以上存在するもののみ表示 ==== <code console> $ cat
- 20 awkで合計
- ====== 20 awkで合計 ====== ===== 集計する ===== <code> $ cat a 1 2 3 4 5 $ cat a | awk '{s+=$1} END {print s}' 15 </code> ===== カラムが複数 ===== <code> $ cat a 1 2 2 3 3 5 4 8 5 10 $ cat a| awk '{s1+=$1} {s2+=$2} END {print s1" "s2}' 15 28 </code> {{tag>awk}}
- 19 expectで自動su
- く実行するコマンドを自動で実行できるようしてみる。 ===== 1.シェルを用意 ===== <code |~/bin/su.sh> #!/bin/sh PW="[PASSWORD]" expect -c... su - expect matsui: send -- ${PW}\n interact " </code> ==== 実行権追加 ==== <code> $ chmod 755 ~/bin/su.sh </code> ===== 2.bashrcに追加 ===== <code |~/.bashrc> if [ -f ./bin/su.sh ]; the
- 12 Sed 最短一致
- ォルト最長一致なので、最短一致の場合は [^ ] かっこ内の任意の1文字に不一致を利用する。 <code bash> $ echo "AAA-BBB-CCC" | sed 's/^\([^-]*\).*/\1/g' AAA </code> {{tag>bash sed}}
- 17 swapを食っているプロセスを調べる
- apを食っているプロセスを調べる ====== ===== CentOS 5系 ===== <code:bash> #!/bin/bash for i in `ls /proc/ | grep ^[0-... $i -o cmd,user | grep -v 'CMD' fi fi done </code> ===== Cent 6系 ===== <code:bash> #!/bin/bash for i in `ls /proc/ | grep ^[0-9]` do if [ -e /proc/$i/... f "$i\t$SWAP kb\t" ps -p $i -o cmd,user | grep -v 'CMD' fi fi done </code> {{tag>bash swap}}
- 16 awkでチェック
- = 特定行をチェックしたい場合 ===== ==== 下記の結果をチェックしたい ==== <code console> # dmraid -s *** Group superset isw_difce... or status : ok subsets: 0 devs : 2 spares : 0 </code> ==== status 行がokなら「1]を返す ==== <code:bash> # dmraid -s | tr -d ' ' | awk -F":" 'BEGIN {r=0} /^status/ {if ($2=="ok") {r=1} } END {print r}' 1 </code> {{tag>awk}}
- 13 簡単なパケロスチェックプログラム
- チェック ===== 60回ずつpnigを打ち続けるプログラム 毎日00:00にローテートする <code console> #!/bin/sh IP=$1 LOG_DIR="./logs" LOG_FI... FILE echo -n > $LOG_FILE fi fi done </code> ===== Pingパケロス時Tracerouteチェック ===== 1秒毎にpingを打... って、パケロスが発生した時にtracerouteを打つプログラム 毎日00:00にローテートする <code console> #!/bin/sh IP=$1 LOG_DIR="./logs" LOG_FI... echo -n > $LOG_FILE fi fi sleep 1 done </code> ===== Macの場合 ===== Macはpingのオプションがちょっと違うので、ちょっ
- 14 処理にかかった時間を確認
- 14 処理にかかった時間を確認 ====== time コマンド以外で時間を計測したい場合 <code console> #!/bin/bash START=`date +%s` ・・・処理 E... SS} % 3600` MM=`expr ${SS} / 60` SS=`expr ${SS} % 60` echo "${HH}:${MM}:${SS}" </code> {{tag>bash}}
- 11 Probress Bar
- ======11 Probress Bar ====== <code console> progress() { _bar=$1; _bar=${_bar:=.} while : do ... age() { echo "usage:$0 [command]"; exit; } [ $# = 0 ] && usage "$@" & progress </code> {{tag>bash}}