現在携わっているWeb系の開発は、WindowsのXAMPP環境で行っている。ローカルである程度動作確認してから、本番サーバーのプライベートエリアにアップして結合テストを行い、問題が無ければ公開エリアにコピーする、というのがディプロイの手順。
それゆえに本番サーバーのUnix環境での作業はあまり多くない。それでも場合によっては、シェルスクリプトを書いてバッチで処理したい作業も出てくる。シェルプログラミングはたまにしかやらないので、都度調べてもすぐ忘れてしまう。というわけで、良く使いそうなコマンドを覚え書きしておく。
ファイル名に本日日付を入れる
フォルダやアーカイブを作るときに、本日日付や現在日時をフォルダやファイルの名前にしたいことがある。
たとえばフォルダの作成。
1 2 |
mkdir `date '+%Y%m%d'` mkdir `date '+%Y%m%d-%H%M%S'` |
たとえばアーカイブの作成。
1 2 |
tarfile=backup-`date '+%Y%m%d-%H%M%S'`.tar tar cf ${tarfile} *.php |
日時のフォーマットはstrftimeのマニュアルを参照。
Man page of STRFTIME
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/strftime.3.html
アーカイブ操作
僕が使いそうなものだけ。
arc_dirディレクトリ内のファイルを書庫ファイル(arch.tar)にする。
1 |
$ tar cvf arch.tar arc_dir |
書庫ファイルを展開する。
1 |
$ tar xvf arch.tar |
gzip方式で圧縮した書庫ファイルを作成する (圧縮された書庫ファイルにはファイルの追加はできなくなる)。
1 |
$ tar zcvf arch.tar.gz arc_dir |
既にある書庫にファイル(add_file)を追加する
1 |
$ tar rf arch.tar add_file |
書庫ファイルの内容を一覧する
1 |
$ tar tf arch.tar |
書庫ファイルからreadme.txtファイルのみを削除する
1 |
$ tar vf arch.tar --delete readme.txt |
Linuxコマンド集 – 【 tar 】 ファイルを書庫化・展開する(拡張子.tarなど):ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230896/
ファイルやディレクトリの存在をチェックする
1 2 3 4 5 |
if [ -e パス ]; then # 存在する場合 else # 存在しない場合 fi |
[Bash] ファイルやディレクトリの存在をチェックする方法
http://sweng.web.fc2.com/ja/program/bash/bash-check-file.html
[Bash] Bashに関するTIPS
http://sweng.web.fc2.com/ja/program/bash/index.html
ディレクトリだけ一覧する
1 |
$ find . -maxdepth 1 -type d |
linuxでディレクトリだけを表示させる方法 – Linux系OS – 教えて!goo
http://oshiete.goo.ne.jp/qa/2760104.html
シンボリックリンクの実体をコピーする
cpコマンドに -d オプションをつければ良い。
Linuxコマンド集 – 【 cp 】 ファイルやディレクトリをコピーする:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230734/