シェルユーティリティスクリプトのいくつかの例(コレクターズ・エディション)
1 特殊なファイル名のリモートコピー
サーバー間のファイルのコピーは、scpコマンドで行うことが多く、以下のような書式になります。
(1) scp ファイル名 [ユーザー@]ホスト:ディル
(2) scp [ユーザ@]ホスト:ディレクトリ1
(1)はローカルファイルのファイル名をリモートサーバホストのdirディレクトリにコピーし、(2)はリモートサーバホストのdir1ディレクトリにあるファイルのファイル名をローカルのdir2ディレクトリにコピーする形式をとっています。
コピーしたファイル名にecs-eos-base:1.0.tarのような特殊文字が含まれている場合、コロン:は特殊文字となります。形式(1)のコマンドで直接コピーすると、ecs-eos-baseをホスト名として認識し、以下のようにエラーになりながらコマンドが実行されます。
[root@PHY91 docker]# scp ecs-eos-base:1.0.tar root@PHY94:/root/docker
ssh: Could not resolve hostname ecs-eos-base: Temporary failure in name resolution
この場合、. /はカレントディレクトリを表し、エラー解消のためのコマンドは以下の通りです。
[root@PHY91 docker]# scp . /ecs-eos-base:1.0.tar root@PHY94:/root/docker
ecs-eos-base:1.0.tar 100% 84MB 172.7MB/s 00:00
を使用しています。/ をカレントディレクトリに使用すると、scp コマンドは ecs-eos-base をホスト名として認識しません。
2 Base64のエンコードとデコード
CentosやRedhat Linuxで文字列のBase64エンコードやデコードを行うには、base64コマンドを使用するだけで可能です。
(1)エンコード
[root@PHY91 ~]# echo "PHY91" | base64
UEhZOTEK
(2) デコード
[root@PHY91 ~]# echo "UEhZOTEK" | base64 -d
PHY91
base64は、文字列とファイルの内容の両方をエンコードおよびデコードすることができます。dパラメータはデコードを指示するものである。
ファイルをエンコード、デコードするコマンドは次のとおりです。
[root@PHY91 test]# echo "12345" > test.txt
[root@PHY91 test]# base64 test.txt
MTIzNDUK
[root@PHY91 test]# base64 test.txt > test2.txt
[root@PHY91 test]# more test2.txt
MTIzNDUK
[root@PHY91 test]# base64 -d test2.txt
12345
3 バージョン番号の自己増殖の実装
docker build でアプリケーションイメージを構築する場合、イメージのバージョン管理を容易にするため、ビルドごとにイメージのバージョン番号を 1 つずつ増加させる。
[eos@host-132 eos]$ more version.txt
1.0.0
バージョン番号を取得するコマンドは以下の通りです。
バージョン=cat version.txt
バージョン番号は、version変数に代入されます。
バージョン番号は自動的に1ずつ増加する。スクリプトコマンドは以下の通りである。
echo $version | awk -F '.' '{print($1".") $2"." ($3+1));}' > version.txt
コマンドの説明です。
(1) awk コマンドはセパレータドット「...」で使用します ;.
(2) $1, $2, $3はそれぞれバージョン番号の1桁目、2桁目、3桁目です。
(3) $3+1とは、バージョン番号が1つ増えることを意味します。
4 sed 実行環境を設定する
完全に分離されたWebアプリケーションのプロジェクトでは、フロントエンドはnginxを使用して静的リソースをデプロイします。プロジェクトのフロントエンドのコードのベースURL(baseUrl)は、異なる実行環境(開発、テスト、本番)に応じて適宜変更する必要があり、例えば、baseUrl割り当てのためのjsコードは以下のようになります。
{{コード
これは、シェルユーティリティスクリプト(コレクターズエディション)のいくつかの例に関するこの記事の終わりです、より関連するシェルユーティリティスクリプトは、スクリプトの家の前の記事を検索してくださいまたは次の関連記事を参照してくださいは、スクリプトの家をサポートすることを願って続けています!。
関連
-
シェルスクリプトによる複数インスタンスでのnginxのデプロイメントの詳細チュートリアル
-
bash:/root/.bashrc:Permission deniedを解決する。
-
bashスクリプトがカップ/メモリ/ディスクの使用量を監視する方法
-
シェルスクリプトでバッチファイルを簡単に作成・変更する方法
-
Webshellの基本を徹底解説
-
シェル特殊変数(シェル $#, $*, $@, $? , $$)の使用について
-
詳細な手順でフォーマットされたディスクを素早く作成するシェルスクリプト
-
Linux Shellのパラメータ取得方法
-
Linuxシェルのパスパラメータ実装原理とコード例
-
Linuxで科学的記数法(e)を数値に変換する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン