Tag shellを表示しています。
2018.10.19 金
デバック方法は数ある中でも最終的に頼りになるデバック方法を備忘録として書いておこうと思いました。いろいろな武器はかなりの性能を発揮するのですが、それがいつでもどこでもどの環境でも使えるわけではないというわけで、とりわけサバイバルナイフ一本でどこまでできるかというような趣旨になります。 そして「プログラムは嘘をつかない、いつかは必ずみつかるバグ」をモットーにがんばりましょう! Grep いわずと知れたgrepコマンドですが、grepはシステムを制すなのです。 ほとんどの場合、他のコマンドをパイプでつないで使います。出力した内容をそのままパイプで渡して文字列検索をします。 パイプを使う $ cat index.php | grep -n "include" -nオプションを入れておくと行数が出て...
2018.8.20 月
すごい若い女の子にもらったレシピだけど、見てたら読みたkなってきたぞ。 Unix はじめてUNIXで仕事をする人が読む本 Linuxシステム[実践]入門 Web 「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか Webを支える技術 -HTTP、URI、HTML、そしてREST マスタリングTCP/IP 入門編 第5版 Datastore 達人に学ぶ DB設計 達人に学ぶ SQL徹底指南書 Datastore (advanced) SQL実践入門 高速でわかりやすいクエリの書き方 SQLアンチパターン プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに Cording ails tutorial ブジェクト指向設計実践ガイド オブジェクト指向...
2017.10.3 火
dateコマンドのフォーマット 書くまでもないんですがUNIX & Linux コマンド・シェルスクリプト リファレンスにめちゃくちゃ詳しく載ってました。 ややこしいところはここにも書いてます。 date "+%Y%m%d-%I%M%S" 「20171003-100938」というフォーマットで日付が作成されます。フォーマットはクォートで囲わなくてもいいんですが囲った方が後々楽です。 date "+%Y年%m月%d日 %I時%M分%S秒" 日本語入れても大丈夫です。「2017年10月03日 10時26分01秒」 過去の日付と未来の日付 以下のコマンドでわかりやすい形で日付作成ができるのがうれしいです。 years months days hours minutes seconds 過去...
2017.7.16 日
rsyncsync サーバー間でアプリケーションの同期をします。rsyncの同期なのでアプリケーションの種類は問いませんが、多少そのアプリの内容に精通していないと使いづらいと思います。 設定内容は以下になります。 同期元と同期先のSSH接続情報(SSHkey設定推奨) 同期元のDatabase接続情報、同期先のDatabase接続情報 アプリケーションファイルの置換文字列設定 Databaseの置換文字列設定 ロールバックの設定 環境 openssl-devel libssh2 ssh2 インストールと設定 転送元の任意のディレクトリにアップロードしてください。PHP7.0以上推奨ですが、たぶんそれ以下のバージョンでも動きます。
2016.12.26 月
改行コードの問題なので、CRLFをLFにしてあげるといいです。 cat -A xxx.sh 対象のshファイルを上記コマンドでみてみると^MがCRになってます。 UTF8でLFにしてやるとたいてい治ります。(とはいえ「コマンドが見つかりません」といわれるだけで実行には問題ないです。) sed "s/^M//g" xxx.sh > xxx.sh こんな感じで。 普通にローカル環境でなおしてあげるのでも全く問題ないです。 http://sunnydays-k.hatenablog.com/entry/2015/05/13/222825
2016.10.27 木
今更だけど、これめちゃくちゃ忘れる。(※あと、引数ね。) 実行するとyesかnoをタイプするまでプロンプトが待ちになります。 #!/bin/bash # Global run echo "You will transfer all files to the production environment. OK ?" read answer case $answer in yes) echo -e "Start something...\n" ;; no) echo -e "Aborted run.\n" ;; *) echo -e "Cannot understand $answer. Input yes or no.\n" ;; esac
2016.8.16 火
file_`date "+%Y%m%d_%H%M%S"`.txt file_20140409_111255.txtというファイルができます。私はたいていcronでバックアップファイルを作るときなんかに利用してます。 mysqldump -u user -h localhost -pPASSWORD sample_db sample_tbl > /tmp/dumpfile_`date "+%Y%m%d_%H%M%S"`.sql とかいうのもいいです。 dateコマンドのフォーマット dateコマンドにはフォーマットがいろいろあるでいろいろ使えます。 文字列 指定した文字列を表示する %H 時 (00〜23) %I 時 (01〜12) %k 時 ( 0〜23) %l 時 ( 1〜12) %...
2016.8.2 火
滅多に自分でシェルを書かないのでよくわからなくなったので整理します。 command para1 para2 para3 というのがあると、シェルの中では、 #!/bin/bash # 実行時に指定された引数の数、つまり変数 $# の値が 3 でなければエラー終了。 if [ $# -ne 3 ]; then echo "指定された引数は$#個" 1>&2 echo "実行するには3個の引数が必要" 1>&2 exit; fi # here document cat <<__EOT__ $1 $2 $3 $#個 __EOT__ exit;