前提・実現したいこと
ステージング環境サーバ上のシェルupdate.shで設定ファイル(list.txt:文字コードUTF-8)
を読み込んで、本番環境へWEBコンテンツをアップロード・削除する仕組みを作っています。
※構成図を参照ください
設定ファイルlist.txtは人が記述するので、記述の仕方が間違っていないかと、
文字コードのチェックをしたいのですが、シェルupdate.shでlist.txt読み込む際に
標準エラーで出力させて、ログで確認するしか方法はないでしょうか?
該当のソースコード
list.txt
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ # # Ver.1.0.0 2021/03/03作成 # # Path: # /home/opt/etc/list.txt # Description: # /home/opt/bin/update.shで読み込む設定ファイル # #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ TYPE = “update” TIMING = “schedule” FILE = “/var/www/html/example.html” TIME = “15:45 05/04/2021”
update.sh
#!/bin/bash #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ # # Ver.1.0.0 2021/03/03作成 # # Path: # /home/opt/bin/update.sh # Usage : # CRONで1時間毎に定期実行する # Description : # list.txtの各値を読み込み、値に元づき本番へコンテンツを # アップロード、およびコンテンツを削除する # #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ # ---------------------------------------------------------- # 事前処理 : list.txt読み込み # ---------------------------------------------------------- . ./list.txt # ---------------------------------------------------------- # メイン処理 : コンテンツのアップロード・削除 # ---------------------------------------------------------- if [$TYPE = update] && [$TIMMING = schedule]; then echo “scp –r ${FILE} root@本番WEB#1: ${FILE} | at {$TIME}” elif [$TYPE = delete] && [$TIMMING = schedule] ; then echo “ssh root@本番WEB#1 ‘-exec rm -rf {FILE} ;’ | at {$TIME}” elif [$TYPE = update] && [$TIMMING = immediate] ; then scp –r ${FILE} root@本番WEB#1: ${FILE} elif [$TYPE = delete] && [$TIMMING = immediate] ; then ssh root@本番WEB#1 ‘-exec rm -rf {FILE} ;’ else mv /home/opt/LIST_yyyymmdd.txt fi
補足情報(FW/ツールのバージョンなど)
サーバ:Amazon EC2
OS:Amazon Linux 2
シェル:bash
回答2件
あなたの回答
tips
プレビュー