全文検索:
- 24 バックアップシェル(backup.sh) @bash:script
- バックアップシェル(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重起動防止 @bash:script
- ====== 26 pgrepで2重起動防止 ====== <code> function IsRunning() { if [ $$ -ne $(pgrep -fo "$0") ]; then echo "起動済みです。" exit 1 fi } </code> {{tag>bash}}
- 11 Cronが動かない時
- nが動かない時 ====== ===== 「2&>1」を付けて、ログ出力してみる ===== <code> 05 20 * * * bash -x /root/bin/backup.sh > /tmp/log.log 2&>1 </code> ===== PAHTが通ってない可能性 ===== <code> PATH=/sbin:/bin:/usr/sbin:/usr/bin:/root/bin </code> {{tag>cron}}
- 03 特殊な変数展開
- thを省略すると最後までとして解釈します。 * 変数VARの値の2番目から6個を切り出す。 <code console> $ VAR=0123456789 $ echo ${VAR:2:6} 234567 </code> ===== 合致する変数名を表示 ===== ${!prefix*} 文字列prefixで... 前の**変数名**を全て表示します。 * VAR*と合致する**変数名**を全て表示する。 <code console> $ VAR_1=0123 $ VAR_2=abcd $ VAR_3=wxyz $ echo ${!VAR*} VAR_1 VAR_2 VAR_3 </code> ===== 値の文字数を表示する ===== ${#variable} 変数variab
- 01 ファイルの指定行を抜き出す @bash:script
- ===== 指定行を表示 ===== これで、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 @bash:script
- 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重起動防止 @bash:script
- 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時間の比較 @bash:script
- の比較 ====== ===== 最終更新から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}}
- 01 Bash - 制御文
- 、elifは省略可能です。thenは必須となります。</color> ==== 構文 ==== <code> if [ 条件1 ]; または if test 条件 then 条件1が成立した... 実行するコマンド else 条件1と条件2が不成立の時に実行するコマンド fi </code> ==== if文 使用例 ==== testコマンドによる、if分岐 test01.sh <code> #!/bin/sh if test $1 -le 0 then echo "Number i... l 0." else echo "Number is grater than 0." fi </code> 実行例 <code console> $ sh test01.sh 6 Number is L
- 10 Bashでゼロパディング
- でゼロパディング ====== Bashでゼロパディングする方法。 シンプルだけど、結構便利 <code> $ seq -w 10 01 02 03 04 05 06 07 08 09 10 </code> zero padding ゼロパディング {{tag>Bash}}
- 15 awkでカウント @bash:script
- ==== 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
- 09 While 内でSSH
- ====== 09 While 内でSSH ====== これだと、1行しか表示されない。 <code> while read NAME HOST CMD do ssh $NAME@$HOST "$CMD" done </code> SSH を実行すると、標準入力がそちらに振り向けられるため、read で読んだ1行のみならず、... レクトし、標準入力をリダイレクトしないようにする。 ===== こちらだとOK ===== <code> while read NAME HOST CMD do ssh -n $NAME@$HOST "$CMD" done </code> {{tag>bash ssh while}}
- 20 awkで合計 @bash:script
- ====== 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 @bash:script
- く実行するコマンドを自動で実行できるようしてみる。 ===== 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 最短一致 @bash:script
- ォルト最長一致なので、最短一致の場合は [^ ] かっこ内の任意の1文字に不一致を利用する。 <code bash> $ echo "AAA-BBB-CCC" | sed 's/^\([^-]*\).*/\1/g' AAA </code> {{tag>bash sed}}