ラベル shell の投稿を表示しています。 すべての投稿を表示
ラベル shell の投稿を表示しています。 すべての投稿を表示

2024年5月16日木曜日

対象のフォルダー最下層まで一覧を作成して、再度chmodコマンドを作成するshell

/etc配下のフォルダー最下層まで一覧を作成して、そこからchmodコマンド一覧を作成するshell

-----------------------

 #!/bin/bash

## フォルダーの一覧と権限を取得し、chmodコマンドを生成する
find /etc -type d -exec ls -ld {} \; | awk '{print "chmod",$1,$NF}' > chmod_commands.sh


## 生成されたchmod_commands.shを実行可能にする
chmod +x chmod_commands.sh

## chmod_commands.shを実行してフォルダーの権限を設定する
#./chmod_commands.sh


作成した、chmod_commands.shの中身


 

2021年1月14日木曜日

dockerでshell作成編

 以下、ファイル構成



dockerfileを作成する。











サンプル:

————————————

FROM alpine:edge


ADD ./test.sh /

RUN chmod 777 /test.sh


ENTRYPOINT ["/test.sh"]

—————————————



shellを作成する。









実行すると、以下になる。



2020年5月19日火曜日

DBの複製・DBのCreateを行うShell

参照先:


DB(soe_admin)というDBを複数して、複数のDBにインポートするshellです。


イメージ:
[RDS:1] 
①DBをdumpする
②soe_admin > clients に必要な情報を書き込む

[RDS:2] 
①DBのインポートを行う。


1以下のshellを作成する
=============================
#!/bin/bash


#Dump only
HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="pass"
dump_db="soe_testcase001"

#Import only
HOSTNAME2="127.0.0.1"
PORT2="3306"
USERNAME2="root"
PASSWORD2="pass"

#Table Write only
MYSQL_SCHEMA="soe_admin"
VALUE=`echo ${QUERY} | ${CMD_MYSQL}`
CMD_MYSQL="mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} --show-warnings $MYSQL_SCHEMA"

mysqldump -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} soe_testcase001 > soe_dump.sql


for i in `cat ./test.txt`
do
  cp soe_dump.sql $i
  create="create database if not exists $i;"  
  mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${create}"
  mysql -h${HOSTNAME2} -P${PORT2} -u${USERNAME2} -p${PASSWORD2} $i < $i
  ${CMD_MYSQL} <<EOF
  INSERT INTO clients (client_cd, resq_client_cd, client_dbname, db_type, description, dropped_flag, created_datetime, modified_datetime, deleted_flag, dbhost) VALUES ("$i", " ", "$i", " ", " ", " ", " ", " ", " ", "$HOSTNAME")
EOF
done

================================


2)for文には、test.txtというファイルを見て、実行してくれる

2)test.txtというファイルを作成して、新規DBリストを記載するので
必要な分だけDB名を書き込んでおくこと!

例:

MySQL テーブル追記(for Shell)

参照先:
https://qiita.com/CyberMergina/items/f889519e6be19c46f5f4


#!/bin/bash

HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="pass"

MYSQL_SCHEMA="soe_admin"
CMD_MYSQL="mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} --show-warnings $MYSQL_SCHEMA"

#QUERY="SELECT client_cd FROM clients"
VALUE=`echo ${QUERY} | ${CMD_MYSQL}`


${CMD_MYSQL} <<EOF
INSERT INTO clients (client_cd, resq_client_cd, client_dbname, db_type, description, dropped_flag, created_datetime, modified_datetime, deleted_flag, dbhost) VALUES ("test1", " ", "soe_test", " ", " ", " ", " ", " ", " ", "192.168.1.1")
EOF

2018年10月27日土曜日

keepalivedのヘルスチェックファイル(shell 作成)

◻️以下にて、keepalivedのヘルスチェックファイルを作成する。

# vi /etc/keepalived/redis-check.sh
------- /etc/keepalived/redis-check.sh ------------------------------------------------------
#!/bin/sh
# redis-check.sh

slave_check=`redis-cli -h 192.168.1.202 info | grep role:slave | grep -v grep | wc -l`
ps_check=`ps -ef | grep redis-server | grep -v grep | wc -l`
ping_check=`ping -c 1 192.168.1.201 | grep Unreachable | grep -v grep | wc -l`

if [ "${slave_check}" = 1 ] || [ "${ps_check}" = 0 ]; then

 systemctl restart keepalived
elif [ "${ping_check}" = 1 ]; then
 ip addr add 192.168.1.200/32 dev team0
fi

sleep 1
---------------------------------------------------------------------------------------------------------------

①”slave_check=”記載するIPは、自分のIPを記載する
②”ping_check=”記載するIPは、相手のIPを記載する
※“ip addr add”に追加するIPはkeepalived用の仮想IPです。

※記載するネットワークデバイス番号“team0”は、物理サーバーによって異なるので
ip a
と入力して、IPアドレスの横に表示されているネットワークデバイスを
把握しておくこと

2018年8月2日木曜日

nohupコマンド

ターミナルを閉じると、flaskが終了してしまうので
以下のnohupコマンドを利用する。

nohup python hello2.py &



赤字の部分がポイント!



Lambda + SSM Run Commandで、数十台のEC2のuserdata結果を一括確認する

コードを1枚貼って、テストイベントを実行するだけで、 全台の確認結果が返ってくる手順です。 [ゴール] Nameタグが web-* / api-* / batch-* のEC2すべてに確認コマンドを流し、 NGの台だけ を結果に表示します。確認対象のuserdata(Ubu...