MongoDBを触る機会があったので、コマンド一覧をまとめました。タイトルにあるように自分が使うコマンドのみ記載していますので、コマンドに偏りがあるのはスルーでお願いします。 なお今回は、MongoDBのバージョン3.0.7を利用します。 MongoDBへの接続 $ mongo 「ホスト名」/「DB名」 -u 「ユーザー名」 -p MongoDB shell version: 3.0.7 Enter password:「パスワードを入力」
![MongoDBコマンド一覧(自分用メモ) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/06b90ca57d27ebdfc46b473631257d204f011779/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TW9uZ29EQiVFMyU4MiVCMyVFMyU4MyU5RSVFMyU4MyVCMyVFMyU4MyU4OSVFNCVCOCU4MCVFOCVBNiVBNyVFRiVCQyU4OCVFOCU4NyVBQSVFNSU4OCU4NiVFNyU5NCVBOCVFMyU4MyVBMSVFMyU4MyVBMiVFRiVCQyU4OSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YzQ3NjNiNWQ3OWViNDUyZjI5YTE4NDYxNTY0MWE4Mzc%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDBrLXN0YWdpbmcmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTI3MDQ5YjJlYjAwM2YzMTA3MzA4NGNkZjRlMTgxNTY2%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3Ddaae8f5b347a9ac92208f5b8edeb4418)
Windowsでコマンドラインの環境を整えるには、MSYS2が優秀だ。 デフォルトのターミナルはmintty、シェルはbash、パッケージマネージャとしてpacmanがついている。 Windowsのパッケージ管理ソフトChocolateyをインストールすれば体制は万全だ。 ソフトウェアのインストールをほぼコマンドラインだけで済ませることができる。 つまりシェルスクリプトを組めばバックアップやセットアップも自動化できるということだ。 あとは設定ファイルをgithubなどに格納してインストール用スクリプトを書けば完璧だろう。 MSYS2 - Minimal SYStem 2 MSYS2はWindows上で動くUnixシェル環境だ。 詳しくはWindowsで使えるターミナルとシェルのまとめを参照されたし。 よくMinGWと一緒に語られているが、MinGWはGCCなどの開発ツールをまとめたツールチ
phpでシェルコマンドを実行するのであれば、 $output = shell_exec("ls"); とすれば、lsを実行した後の結果がoutputに入ります。 シェルファイルも同様に $output = shell_exec("./hoge.sh"); とすれば出来ると思ったですが、上手く動きませんでした。 http://stackoverflow.com/questions/7397672/how-to-run-a-sh-file-from-php によると $output = shell_exec("sh ./hoge.sh"); のようにshを付けることで、シェルファイルの実行結果がoutputに格納されます。
特定のディレクトリ内の、指定した拡張子のファイルを再帰的に削除するコマンドをメモとして残しておきます。 基本コマンド # 例としてディレクトリ内のテキストファイルを再帰的に削除するコマンド $ find ディレクトリパス -name "*.txt" | xargs rm 意味としてはコマンドのまんまなのですが、一応コマンドの内容を解説しておきます。このコマンドは以下の手順で再帰的に特定の拡張子のファイルを削除しています。 findコマンドでディレクトリ内の特定の拡張子のファイルパスを再帰的に探索 探索したファイルパスをrmコマンドに渡して削除 ディレクトリ名に拡張子が含まれている場合 上記のコマンドだと(滅多にないと思いますが)、hoge.txtみたいな名前のディレクトリが存在してた場合はファイルの削除は成功するものの、下記のようなエラーが表示されます。 # hoge.txtはディレクトリ
*(アスタリスク)長さ0以上の文字列にマッチします。?(疑問符)任意の一文字にマッチします。[文字](角括弧で括られた文字)括られた文字のうちいずれかにマッチします。[a-z](アルファベットの小文字aからzまでの文字)のように範囲で指定することもできます。[^文字] もしくは [!文字]括られた文字以外の文字のいずれかにマッチします。[^0-9](数字以外の文字)のように範囲で指定することもできます。 変数値の置換例$ f=/etc/systemd/system $ echo $f /etc/systemd/system # 先頭の「/etc」を削除して出力 $ echo ${f#/etc} /systemd/system # 先頭から「/*/」に最短一致する部分を削除して出力 $ echo ${f#/*/} systemd/system # 先頭から「/*/」に最長一致する部分を削除し
#!/bin/sh # 二重起動チェック if [ $$ != `pgrep -fo $0` ]; then echo "Already running!" >&2 exit 9 fi # メイン処理 echo "[`date '+%Y/%m/%d %T'`] Sleep 10 seconds..." sleep 10 exit 0 $$ は、自分自身のプロセスID。 $0 は、自分自身のプロセス名(相対パス)。 pgrep -fo $0 は、自分自身のプロセスIDを取得。 メリット・デメリットについて メリットは、cron 実行しないのであればこれで充分である。 デメリットは、cron で実行された場合にチェックが効かない。 理由は、pgrep -fo $0 が cron で実行した際のプロセスIDとなってしまう(子プロセス($0)のプロセスIDにならない)ため。 2. 作成例(その2)
2014/8/28更新 対応バージョン: 8.4 dateコマンドを使って日時計算をするには--dateオプションに続けて日時と計算の単位を指定すればよい。 指定できる単位は以下の通り。 年: years 月: months 日: days 時: hours 分: minutes 秒: seconds これに数字をつけて「2 days ago」のように自然なフレーズで指定すれば日付計算をやってくれる。 以下にいくつかサンプルを示す。dateはGNU版の最近のバージョンであれば特に問題ないだろう。 % date --version date (GNU coreutils) 8.4 : 今日から5日後 % date +%Y%m%d 20140827 % date --date "5 days" +%Y%m%d 20140901 2014/1/1から3日前 日付を指定するとその日を起点に計算され
最近、Apacheのログ解析をすることが多いので、備忘録を兼ねてまとめ。 とりあえず、超便利コマンドはawk, sed, grep, uniq, sortあたり。コレを駆使して色々解析する。そして、これを駆使して解析がツライ時は素直にperlやruby, pythonに処理を渡すべきかなぁ。awkが結構なんでもできるので、awkだけでも基本的にはいいけれど。 あと、リアルタイム解析じゃなくて前日のログ解析だから基本はzgrepやzcatから始まります。 で、ポイントは可能な限りzgrepを使うこと。zcatは一度全部展開するので、トロいし、負荷もでかいです。 apacheのログフォーマットが違うと当然そのまま適用できないので、その辺は適当に変更する感じで。 やっぱ、CSV解析はこの辺がネックですね。全部JSONになれば良いのに... 平均レスポンスタイム アクセスログの末尾がレスポンスタイ
CakePHPのバッチ(定期起動)処理を作る方法 こんにちは!ぐちです。 Webシステムを作っているときに定期処理といいますかバッチ処理って必須ですよね。そんな時にCakePHPを使ったバッチといいますかシェルといいますか定期処理を行うための方法をご紹介します。 AppShell 下記は通常のControllerクラスです。 <?php App::uses('AppController', 'Controller'); class HogeController extends AppController { public function hoge() { // 〜中略〜 } } 上記に加えてAppShellクラスを継承した下記のクラスも用意します。 <?php App::uses('HogeController', 'Controller'); class HogeShell exten
質問 command > dev/null 2>&1ってよく書いてませんか? crontabでよく書いてませんか? でもそれ、前のcrontabコピペして書いてませんか? 実は意味を理解せずに書いてませんか? ゴール ファイルディスクリプタを理解する command > /dev/null 2>&1の意味をきちんと理解する 基礎知識 1. ファイルディスクリプタ Unixには、次の3つの入出力があり、それぞれ番号が振られています。 0: 標準入力 1: 標準出力 2: 標準エラー出力 ファイルディスクリプタとは、これら入出力をOSが判別する為に割り当てられた番号の事です。 2. リダイレクト よく>という記号を見ると思いますが、これがリダイレクトです。 例えば、標準出力に出すだけのシェルスクリプトを作ってみます。
expect編以外に書くつもりは毛頭ありません。 manを見てもググってもどうにも手がつけられない程度に分かりづらかったので、備忘録としてまとめます。 expectって何? 対マシンに於いて発生する、マシンからの問いに対し、人間がキーを叩いて返答する、所謂対話を自動化するコマンド及びモジュールです。 今回はLinux上のexpectコマンドを取り上げますが、CでもC++でも同様の処理が実行可能なようです。 RubyやPerlでも書き換えられ、モジュールとして配布されているようです。 元はTclというプログラム言語ベースのコマンドです。 コマンドとは言いましたが、使い道はほぼスクリプトとなるかと思います。 というかコイツをワンライナーでどう使えばいいのかよくわかりません。 また、expectはコマンドというか言語であるようです。 expectはTclのスーパーセット(Tclを包括し、更にオプ
jq コマンドとは http://stedolan.github.io/jq/ JSONから簡単に値を抜き出したり、集計したり、整形して表示したりできるJSON用のgrepとかawkみたいなコマンドです。 WebサービスがJSONを吐いたり、AWS CLIが JSON を吐いたりする現代社会で大変便利なコマンドです。 マニュアル だいたいここ読めばOK. http://stedolan.github.io/jq/manual/ あ、これで、終わってしまう。だけど気にせず進めます。 簡単な例 まず、空気をつかみましょう。 以下jqコマンドの記法を見ていきます。JSON { "hoge": "value" } があった場合、 . がルート {} を表します。.hoge で "value" を表現します。だいたいこんな感じです。 ただの整形 しばらく下記のJSONを例に進めます。itemsには配
はじめに bashシェルスクリプトの記述の仕方に関するメモ書きです。 ファイル入出力やパイプライン処理を中心に シェルが得意なのはファイル入出力やパイプライン処理なので、複雑な構文はできるだけ使わず、これらの使用を中心としたコードを書きます。 PATH コマンドごとにフルパスを変数に格納するなどは手間なので、必要な環境変数$PATHをexportしておきます。 それでも必要な場合はフルパスを変数に格納しておきます。 標準出力、標準エラー出力のリダイレクト 標準出力(1)、標準エラー出力(2)はデフォルトは画面になっています。 それ以外にエラーメッセージを定義する場合、標準エラー出力(2)にリダイレクトします。
概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =
cut コマンド 2016/06/11 タブ区切りでフィールドを選択して出力する、または各行の中の一部を範囲指定して出力するコマンド。 cutコマンドの使用例と、同じことをするPerlワンライナーの例 ## タブ区切りで最初の列と3列目だけを抽出して、タブ区切りで出力する $ cut -f1,3 foo.txt $ cat foo.txt | cut -f1,3 $ cat foo.txt | perl -anle 'print "$F[0]\t$F[2]"' ## 以下のようにしても列の順番は入れ替えてくれない $ cut -f3,1 foo.txt ## Perlならできる $ cat foo.txt | perl -anle 'print "$F[2]\t$F[0]"' ## 各行の4文字目以降を出力する $ cut -b4- foo.txt $ cat foo.txt | cut
date コマンド 2021/01/24 現在の時刻を取得したり、設定したりするコマンド。OSが刻んでいる日時がずれている場合は、root権限でこのコマンドを使って正しい日時を設定する。 時刻の表示フォーマットを指定することもできる。 「30日後は何日か?」などの簡単な日時の計算もできる。 現在日時ではなく、処理にかかる時間を測定するにはtimeコマンドを使う。 基本的な使い方 2021/01/22 # 現在の日時を表示 $ date # 現在の日時をUTCで表示 $ date -u # フォーマットは + で始まる書式で指定 $ date "+%Y%m%d-%H%M%S" # 24時間後の日時を表示 $ date -d tomorrow # -d の代わりに --date でも同じ $ date --date tomorrow # 30日後の日付を表示 date "+%Y/%m/%d"
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く