
何に関連して記事を書こうと思った訳でもないです。たんなる一人コードリーディングです。 GNU CoreUtils に入ってる rm を読みました。 GNU Project Archives http://ftp.gnu.org/gnu/coreutils/ 読んだのは coreutils-8.17.tar.xz に入ってる src/rm.c preserve_root 変数は 203行目にある main で int main (int argc, char **argv) { bool preserve_root = true; struct rm_options x; true に初期化されていて319行目 if (x.recursive && preserve_root) { static struct dev_ino dev_ino_buf; x.root_dev_ino = get
nodeでスクリプト書いてもいいけど、絶対コマンドあるはずだと思ってbrew search watch したらそれらしきものがあった。 alandipert/fswatch https://github.com/alandipert/fswatch 公式サンプルより ./fswatch /some/dir "echo changed" 自分はこんな感じで使ってる。 fswatch . "./bin/coffee scratch.coffee" なにかのモジュールのファイルを変更したら scratch.coffeeっていうデバッグコードの状態をdumpする。 TypedCoffeeScriptの開発で, gruntで監視対象を書いてもいいけど、なんか最近のgrunt妙にヘヴィだし、見たいデータがその都度違うので、さっくりみれるのは大事。
特にシリーズ化を目論むわけではないですが、 完全に理解しているわけではないけど、使える。 みたいなものってありますよね。 そういうのはよくないのでしっかりと理解しよう! というテーマでやります。 今回はSSHの仕組みについて書いていこうと思います。 参考記事 概要 ~SSHとは~ SSHの仕組みを理解するための用語 鍵交換方式の仕組みと実際のコマンド 便利なオプション まとめ このような流れで書いていきます。 参考記事 こちらを参考にします。(ぶっちゃけこれだけ見ればオッケーな気も。。。) 公開鍵暗号について理解が足りていなかったのでメモ - かせいさんとこ 鍵交換方式による認証 概要 ~SSHとは~ SSHはSecure Shellの略で、あるマシンに別のマシンからアクセス , ログインするというイメージです。 主にサーバー(リモート)にクライアント(ローカル)からアクセスするときに使い
sshやscpなど、対話型のインプットが必要なコマンドを、スクリプト化して運用に使いづらいので、expectパッケージを利用すると便利です。 OSにあらかじめexpectのパッケージが入っていない場合、下記コマンドでインストール。 yum install expect下記は、リモートホストにログインして ls を叩くシェルのサンプルです。 #!/bin/bash hostname=192.168.10.12 username=hoge password=hogehoge expect -c " spawn ssh -l oracle $hostname expect \"$username@$hostname's password:\" { send \"$password\n\" } \"Are you sure you want to continue connecting (yes/
インターネットのネットワークに多少なりと興味がある方なら、指定の目的地までの経路探索をしてくれる、みんな大好きtracerouteコマンド。 そんなtracerouteの色々をメモしておきます。 tracerouteの仕組み 既に多くの解説サイトがあるので、そちらに譲りますw tracerouteはTTLを1ずつ増やしながらパケットを送信することで、経路情報を取得する。 TTLとはパケットの生存期間を表し、ルータを1つ経由することに1ずつ減算される。 ルータはTTLが2以上のパケットが届いた場合、TTLの値を1だけ小さくし次のルータへ転送する。 TTLが1のパケットが届いた場合、届いたパケットを破棄しICMP time exceededパケットを送信者に返す。 tracerouteはまず、TTLを1にセットしたパケットを送信する。最初のルータに届いた時点でTTLがゼロになり、ICMP ti
久々の更新ですが、今年も除夜のEjectのシーズンがやってまいりました。今年は大きな変更があるため、ブログでもお知らせいたします。 今回から、X(旧Twitter)連携での投稿、つまり鐘をつくことができません。昨今のXの仕様変更により、APIが利用できなくなりましたので、残念ながらXへの対応が不能となりました。 Xへの投稿ができなくなるため、Xに除夜のEjectの投稿は流れません。ご注意下さい。 代替の参加方法については、以前より対応済みのMastodonから、あるいは今年より対応のMisskeyからご参加ください。Misskeyは、どのMisskeyサーバーからでも参加可能です(Mastodonと同様)。 今年も皆様のご参加をお待ちしております。 参加忘れ防止に便利なスケジューラ登録ボタンもぜひご活用下さい。 https://eject.kokuda.org/joya/
rsyncの解説ってどこ読んでもよく分からないと思います。exclude-fromファイルのフォーマットについても詳細な解説がないのですが、Joho the Blog » Beginner to Beginnerに分かり易く説明されていました。 以下拙訳ですが、参考までに載せておきます。 exclude-from ファイルには include と exclude の両方を記述できる。どちらの記述なのかを + か - で示す。そのリストではrsyncコマンドで指定したパスがルートディレクトリになる。つまり、コマンドラインで"/Users/me/"をバックアップするように書いた場合、exclude-from ファイルで以下の記述をすると、"/Users/me/junk" を exclude することになる。 - junk/ 同じように、"/Users/me/importankstuff/"を
rsyncで特定のファイル、ディレクトリを除外して転送は--excludeオプションを指定すれば、事足りるんだけど、いくつかのディレクトリとかファイルとかだけ転送させたい。なんてことがあったりする。あんまり情報がないので、とりあえず書いとく。 よくあるのだと全てのディレクトリ、ファイル毎日rsyncしつつ、特定のディレクトリはバックアップを取らないみたいのが多いと思う # /backupにごっそりバックアップ。けど特定のディレクトリは除外 rsync -av -H --delete --force --exclude="/backup/" --exclude="/dev/" --exclude="/proc/" --exclude="/sys/" / /backup # とかリモートのサーバにバックアップとか rsync -avz -H --delete --force --exclude
CentOS のApache でDocumentRoot とされている/var/www/html をサーバ間で同期するために % rsync -avz -e ssh --delete /var/www/html foo@example.com:/var/www/htmlとrsync を実行しても、foo に/var/www/html への書き込み権限がないため成功しない。 # PermitRootLogin yes な方は勝手にどうぞ。 NFS が使えれば手っ取り早いのだが、一つの解決策として example.com に以下のスクリプトを置き(/home/foo/rsync.sh とする) #!/bin/sh /usr/bin/sudo /usr/bin/rsync $* visudo で foo ALL=(ALL) NOPASSWD: /usr/bin/rsync と設定しておく。 あと
dig(domain information groper)は、BIND 付属の DNS ゾーン情報の参照用コマンドです。ある DNS ゾーン情報を、リモートから DNS 問い合わせを発行して参照することができます。これを用いてすでに動作しているDNSサーバの情報を参照することができます。 構文 dig コマンドは、以下のようなオプションを持ちます。大括弧([])で囲まれている部分は省略できます。 dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-p port#] [-t type] [-x addr] [-y name:key] [name] [type] [class] [queryopt...] オプション @server 問い合わせを行う DNS サーバを指定します。省略した場合は、dig コ
GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい
AWK リファレンス AWK とは? AWK はフィルタリングによく使用されるコマンドであるが、同様にしてフィルタリングに使用される grep や cut と決定的に違うところは、AWK 自体が独立した一つのスクリプト言語であるということだ。つまり、AWK は正確にはコマンドではなく、AWK スクリプト・インタプリタである。 例えばテキストから 1 フィールド目を抽出する場合には、awk '{ print $1 }' と実行するが、ここで引数として AWK に渡している { print $1 } の部分が AWK スクリプトのソースになっている。 ちなみにこの { print $1 } は「全ての行に関して 1 フィールド目を標準出力に出力せよ」という意味になる。 この AWK は Perl などといった他のスクリプト言語ほど高機能ではないが、単一のテキストファイルや標準入力からのテキスト
1.Youtube youtube -dl 実行にはpythonがインストールされている必要がある。 ・使い方その1 パーミッション与えてPATHの通ったディレクトリにおいた場合 youtube-dl 動画のURL ・使い方その2 手を加えずpythonで直接実行 python youtube-dl.txt 動画のURL ヘルプは-hを付け足す python youtube-dl.txt -h 2.ニコニコ動画 Nicovideo Downloader これもpython必要。 python nicovideo-dl 動画のURL と入力すると Type Niconico E-mail account: 入力すると次に Type Niconico password and press return: と表示され入ロするとダウンロードが始まる。 ヘルプはファイル名だけ入力 python ni
S-JIS[2003-05-19/2016-12-10] 変更履歴 UNIXコマンド一覧 xtermやktermといった端末上のシェルから入力して実行するコマンド。 UNIX…BSD系もSystemV系もLinuxもSolarisも一緒くたに書いてます。 当ページでは 全てのコマンドに<a name="コマンド名">で名前を付けてあるので、URLに「#コマンド名」を付けると目的のコマンドまですぐ飛べます(爆) 終了関連(shutdown等) [/2007-02-09] 端末関連(stty等) [/2009-05-10] ファイル操作関連(ls, cp等) [/2014-09-27] ディレクトリー関連(cd, pushd, mkdir等) [/2008-11-29] ファイル属性関連(chmod, umask等) [/2007-03-05] ファイル表示関連(cat, tee, tail,
今日会社の開発サーバでhitode君と遊んでて、動いているプロセスを調べていたのでメモ。 動いているプロセスを知りたい 基本的。 ps ax ps auxとかすると、メモリ使用量とかいろいろ見れる。 動いているプロセスの関係も含めて知りたい pstreeコマンドでできる。とりあえずどんな感じに実行されているかサマリーを知りたい時は以下のコマンド。 pstree いろいろ折りたたまれているので、それを展開したい時は-cをつける。 pstree -c コマンドの引数とかも表示したい時は-aつける pstree -ac pidを知りたい時は-pつける pstree -acp 表示してみると{}で囲まれているやつがあるけど、これは多分threadなんだろうと思う。linuxではthreadのidはpidのように管理されているみたい。 メモリやCPUを消費しているプロセスを知る topとかでいろいろ
xargs の -P オプションを使うとプロセスを複数起動して処理を並列に行なうことが出来る。 例 例えば、 1 万枚の JPEG 画像を全て 800x800 に収まるように効率良くリサイズしたい。 まず私はこのようなコマンドを考えた。 convert --geometry 800x800 *.jpg しかし zsh に怒られた。 zsh: argument list too long: convert 引数が全て展開されるためこのような事が起きる。 私は xargs を使って処理することを思い付いた。 ls | xargs -I{} convert --geometry 800x800 {} c_{} 処理は行なわれるが非常に遅い。 しかも CPU を全く使っていないことが分かり、私は処理を並列的に行なう事を考えた。 そこで xargs の -P オプションの出番である。 P の後に並列
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く