Linux初心者に突然以下の仕事が振られました.
- 試験環境サーバー構築
- シェルの要所要所でログを出すようにする
今回構築するサーバーはなんと本番環境しかなく,まともな手順書がないっていうもう残念な感じでした.
そんな中でもtry & errorでなんとか構築できたのでその際に使用したコマンドたちを備忘録としてさらします.
パッケージ管理
パッケージインストール
sudo apt-get install apache2
パッケージ削除
sudo apt-get remove apache2
パッケージ管理更新
sudo apt-get update && sudo apt-get upgrade
パッケージ完全削除
- 設定ファイルごと削除する
sudo apt-get purge apache2
ファイル操作
ファイルコピー
- /usr/local に tmpsrc ファイルがごそっと入る
sudo cp -r /tmp/tmpsrc /usr/local
ディレクトリ操作
ディレクトリ作成
- ディレクトリ作成(-pで親ディレクトリがなくてもエラーメッセージを出さずにディレクトリを作る)
mkdir -p testdir
カレントディレクトリ表示
pwd
解凍
tar.gzの解凍
tar -zxvf xxxx.tar.gz
.tgzの解凍
tar xvzf xxxx.tgz -C /tmp/tmpsrc
所有権変更
# -Rでディレクトリの中身も含めて再帰的に処理する
# 所有者をtestuserに,所有グループをrootにする
chown -R testuser:root /home/testuser/example01 /home/testuser/example02
ログイン
ディレクトリを変えずにログインする
su testuser
ディレクトリをユーザーのルートに切り替えてログインする
su - testuser
ユーザー
ユーザー作成
sudo useradd testuser
ユーザー削除
sudo userdel testuser
ユーザー一覧
cat /etc/passwd
グループ
グループを作成
sudo groupadd testuser
グループを削除
sudo groupdel testuser
グループ一覧
cat /etc/group
FW
FWインストール
sudo apt install firewalld
FWポート開放
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
FW設定反映
sudo firewall-cmd --reload
パーミッション
パーミッション設定
モード(数字) | モード(アルファベット) | 権限 |
---|---|---|
4 | r | 読み取り |
2 | w | 書き込み |
1 | x | 実行 |
「所有者」「所有グループ」「その他」の順に権限をモードの合計値で設定する.
chmod 777 /tmp/test.txt
パーミッション確認
ls -l
cron
コマンドやシェルスクリプトを定期的に自動実行するデーモン.
cron.d
- /etc/cron.d 配下に設定を追加する
sudo cp /etc/crontab /etc/cron.d/cron_test
vi /etc/cron.d/cron_test
# m h dom mon dow user command
# 10分ごとに実行する
*/10 * * * * userA echo "hello new world!"
その他
スクリーン初期化
clear
環境変数設定
export HOGE=aiueo
ロギング
- コマンドの実行履歴をファイルに出力する.
script /tmp/20190207.log
- ロギングをとめる
exit
- 自作ロガー
#!/bin/bash
#
# 指定したファイルにログを出力します。
#
# Example:
# . ./logger.sh
# write_log "/tmp/sample.log" "this is test."
#
# Args:
# $1 - ログ出力先
# $2 - ログメッセージ
#
# Return:
# 0
#
function write_log() {
nowd=`date '+%Y/%m/%d'`
nowt=`date '+%H:%M:%S'`
echo "${nowd} ${nowt}: $2" >> $1
return 0
}