自動化メンテナンスのshell関連
1運用次元の概要
機能開発以外のすべてのアクティビティは、運用次元に関連しています.
2自動化メンテナンス:
自動化によるメンテナンスアクティビティの実装一般的にshellスクリプトによる自動化
3 shellは命令解釈
アプリケーションとOSの間
4 shell分類:
一般的にshellはコマンドラインshell(linux下shell(bash))です.
5現在のシステムshellバージョンの表示
6システム互換性サポートのshellタイプを表示します.
7 shellスクリプト:
shellスクリプトと呼ばれるファイルにコマンドを配置して実行します.
8スクリプト作成
9スクリプト実行
10開発仕様
11変数定義
12変数アクセス
13変数の分類:
14式
15一般的な記号
16共通コマンド
17ブランチ
18サイクル
19関数
20 shellのコマンドタイプ:
21コードリリース
>>1プロセス
>>2基礎環境
>>3プロジェクト環境
機能開発以外のすべてのアクティビティは、運用次元に関連しています.
2自動化メンテナンス:
自動化によるメンテナンスアクティビティの実装一般的にshellスクリプトによる自動化
3 shellは命令解釈
アプリケーションとOSの間
4 shell分類:
一般的にshellはコマンドラインshell(linux下shell(bash))です.
5現在のシステムshellバージョンの表示
echo $SHELL
6システム互換性サポートのshellタイプを表示します.
cat /etc/shells
7 shellスクリプト:
shellスクリプトと呼ばれるファイルにコマンドを配置して実行します.
8スクリプト作成
1 ( vim)
2 :1 2 .sh
3 :
4 : python , ::<
9スクリプト実行
1 bash ( shell, shell )
2 ./ ( shell( ), shell )
3 source ( python import ) ( shell )
10開発仕様
1
2
3 ( python )
11変数定義
1 = ( )
2 =' ' ( )
3 =" " ( )
( )
=` `
=$( )
12変数アクセス
1 $
2 "$ " ( )
3 ${ } ( )
4 "${ }" ( )
unset ( )
13変数の分類:
( )
( )
1 :
env
2 :
=
export
( )
export = ( )
3
shell shell( shell shell )
:
1 ~/.bashrc ( ,source shell )
2 /etc/profile ( ,source )
1
$0
$$
$n n ( : s g b )
$#
$? (0- , 0- ,, , )
2
${ : : }
( 0-X)
3
${ :- } ( )
${ :+ } ( )
14式
1
test
[ ] ( )
1 ( )
n1 -eq n2
n1 -gt n2
n1 -ge n2
n1 -lt n2
n1 -le n2
n1 -ne n2
2
== != ( )
2
1 && 2 (1 2)
1 || 2 (1 2)
3
-f
-d
-x ( )
4
$(( ))
let
15一般的な記号
1
:
1 ( )
2 ( )
:
bash 6-chongdingxiang.sh > res.log 2> err.log
:
bash 6-chongdingxiang.sh > res.log 2>&1
:
bash 6-chongdingxiang.sh > /dev/null 2>&1
2
1 | 2
( 1 2 )
3
&
( )
16共通コマンド
1 grep( )
grep -rn bash .
( , bash )
2 find ( )
find . -name *chong*
( chong )
3 sed
-i
:
sed -i "2s#sed#SED#1" sed.txt
("2( )s #sed( )#SED( )#1( 1 ---》g )")
:
sed "2a\hello" sed.txt
"2( )a( )\hello( )"
sed "4i\world" sed.txt
"4( )i( )\world( )"
:
sed "3( )d( )" sed.txt
4 awk
awk '{print $1,$3}' awk.txt
awk.txt 1 3 ,
:
FILENAME:
NR:
awk 'NR==2 {print $2}' awk.txt
( 2 )
NF:
awk '{print $NF}' awk.txt
( )
FS:
awk 'BEGIN{FS="awk"} {print $3}' awk.txt
( awk)
awk -F "awk" ' {print $3,$1}' awk.txt
(-F )
OFS:
awk -F "awk" 'BEGIN{OFS="->"} {print $3,$1}' awk.txt
( ->)
17ブランチ
1 if
if [ ]
then
1
elif [ 2 ]
then
2
else
3
fi
2 case ( )
case in
1)
1
;;
...
n)
n
;;
*)
;;
esac
18サイクル
1 for
for in ( --》 )
do
done
2 while
while
do
done
19関数
1
() {
$n n
}
2
1 2
3 ( )
return 0~255
$?
4
20 shellのコマンドタイプ:
1 ---》which
2 -------》file
3 -------》
:
export WORKON_HOME=/root/.venv
source /usr/local/bin/virtualenvwrapper.sh
21コードリリース
>>1プロセス
1
git push
2 ( )
1
2
tar zcf
zcat ( )
3
scp
-- ---》
( )
4
5
tar xf
6
:
mv yasuo.tar.gz Desktop/yasuo.tar.gz-`date +%Y%m%d%H%M%S`
7
8
netstat -tln | grep 80
>>2基礎環境
1
mkdir /data/{server,logs,backup,softs,virtual,scripts,codes} -p
( , )
2
1
ssh-keygen -t rsa
2
/etc/ssh/sshd_config (AuthorizedKeysFile %h/.ssh/authorized_keys)
3 ssh
sudo service ssh restart
>>3プロジェクト環境
1,
export WORKON_HOME=/data/virtual/
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv -p python3 django
2 Windows linux ( xshell )
rz------win linux
sz -----linux win
3 Django
1
1 INSTALL
2 python setup.py build ( )
3 python setup.py install
2
1
2
django-admin startproject itcast
3
python manage.py startapp test1
settings
4
views.py--->
url
urls
5
python manage.py runserver >/dev/null 2>&1 &