タグ

tipsとlinuxに関するMetaphoneのブックマーク (28)

  • rm -rf でやらかした時すかさず実行する復元コマンド(Linux編) | aucfan Engineers' blog

    初めまして、新卒入社の桑折(@2k0ri)と申します。 入社から今日まで約3ヶ月間、研修およびOJTを受けさせて頂いておりました。 その初OJTのステージング環境で、デプロイ先ディレクトリのシンボリックリンクを消すつもりが デプロイディレクトリを中身ごとrm -rfする という重度のやらかしをしでかしました。 30秒うちひしがれた後、ググって extundeleteというコマンドを見つけてからの 自分が行ったリカバリーの手順を残します。 なお、このコマンドはext3/ext4フォーマット専用になります。 1. サーバーへのアクセスを出来る限り抑えるように周知 最近のLinuxのデファクトFSであるext4フォーマットは、rmされたデータの跡地に 待ったなしで容赦なく新しいデータが書き込まれていきます。 そのため、何よりもまず失われたデータが上書きされないように、 該当サーバーでやらかしたこ

    rm -rf でやらかした時すかさず実行する復元コマンド(Linux編) | aucfan Engineers' blog
    Metaphone
    Metaphone 2016/04/11
    べ、別にさささ参考にすることはんなななな無いと思おもおもおもおもうけど!
  • tree コマンドが無い環境で tree コマンドを実現 - Qiita

    tree コマンドは便利 Linux における tree コマンドは便利ですね。しかし標準コマンドではないため初めて操作するサーバや手軽に tree をインストール出来ない環境だとディレクトリ構造を奇麗にツリー上に表示することが出来ません。 その場合は find や sed を使って tree コマンドを代替しましょう。 find と sed で代替 pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'

    tree コマンドが無い環境で tree コマンドを実現 - Qiita
    Metaphone
    Metaphone 2014/10/07
    find と sed の合わせ技で tree もどき
  • 立つハッカー、シェルを濁さず - Qiita

    おことわり このTipsは不作法だとして異論が出るかもしれないが、私自身がよくやるのでここで公開してみる。それは一体何かというと…… コマンドヒストリーが残るのイヤだ! と思うことってよくないだろうか? 開発環境で、後に再利用することは到底ありえないくらい長ーいワンライナーを書いたり、あるいは rm -rf * みたいなキケンなコマンドを実行したりして、ログアウト後にそういうのを残したくない、と思うこと。 そんなアナタにオススメのTipsだと思う。 次のコマンドを実行すればOK

    立つハッカー、シェルを濁さず - Qiita
  • https://qiita.com/geta6/items/9472f6f192976670c93f

    Metaphone
    Metaphone 2014/06/29
    nohup でプログラムをデーモンとして動かせる
  • chmodやchownのreferenceオプションを知った時は目から鱗だった話

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 元々ホスティング会社で働いていたので、その特性上ownerやpermissionを色々と弄る事が多く、数年前の社会人時代にchmodやchownをもっと楽に使えないかなぁと調べた時に目から鱗だったのがchmodやchownのreferenceオプションでした。 今回は単にreferenceオプション楽ですよね、という記事なのでご存知の方は退屈な記事だと思いますが、まわりに聞いてみた所意外と知られていなかったりしたので、ブログエントリにしておこうと思います。 referenceオプションを使うと、任意のファイルを指定することで、変更対象のownerやpermissionを指定したファイルと同じ設定にすることができます。 例えば、/bin/pin

    chmodやchownのreferenceオプションを知った時は目から鱗だった話
    Metaphone
    Metaphone 2014/06/23
    お得情報じゃん
  • cron上でのコマンド実行を再現する - Qiita

    シェル上だと動くのにcron上だと動かない。 よく聞くお話ですよね。 大体はcron上と普段のシェル上で環境変数が違うために起こる問題です。 そういう時に使えるtipsを共有します。 個人のマシン上で適当に動かすようなcronだと みたいにしてログインシェルを間に噛まして環境変数を上書きして実行することでごまかしたりもできます。 これまた別の依存する箇所を増やすので 個人のマシンかrcファイルがちゃんと管理されているような状況以外ではオススメできません。 なのでcron上で実行される状況とほぼ同じ状況でスクリプトを実行してみましょう。 cron上では環境変数はほぼ空なので環境変数を空にしてみましょう。

    cron上でのコマンド実行を再現する - Qiita
    Metaphone
    Metaphone 2014/06/04
    cron に泣かされないために
  • デーモンの起動・終了にはserviceコマンドを利用しよう

    斎藤です。こんにちは。 今日は、デーモンの起動・終了に際してはserviceコマンドを使った方がいいよ、というお話です。 ※CentOS 6.4 (x86_64) でテストしています。尚、特記がある所を除きます。 デーモンの起動・終了には大きく2手 Linux、特にRedHat, CentOS, Fedora, Ubuntu[1]などでは、デーモンの起動・終了の制御の際に、大きく分けて次の2つの方法を用いる事ができます。 "/etc/init.d/"配下のスクリプト(以下、スクリプト)を直接実行する "service"コマンドを実行する 一見、同じ事をやっているように思えるのですが、実は違う部分があります。それは、起動スクリプトが扱う環境変数が違うのです。次の節で、検証してみます。 扱う環境変数が違う スクリプトを直接実行する場合は、実行時の際の環境変数をそのまま利用します。一方、serv

    Metaphone
    Metaphone 2013/06/25
    /etc/init.d/ 配下を直接叩くより service を使った方が環境変数的にトラブル要因を招きにくい
  • root 権限の必要なディレクトリに対してrsync する - ´・ω・)<ときどき書くよ

    CentOS のApache でDocumentRoot とされている/var/www/html をサーバ間で同期するために % rsync -avz -e ssh --delete /var/www/html foo@example.com:/var/www/htmlrsync を実行しても、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 と設定しておく。 あと

    root 権限の必要なディレクトリに対してrsync する - ´・ω・)<ときどき書くよ
    Metaphone
    Metaphone 2013/04/12
    PermitRootLogin せずに root 権限で rsync
  • rsyncで再開可能なファイル転送 - karasuyamatenguの日記

    結論: rsnc --partial --appendで再開可能なファイル転送ができる 転送中に障害が発生 takao$ rsync -av --progress --partial --append bigfile 192.168.1.181:/var/tmp/ bigfile 562823168 52% 43.22MB/s 0:00:11 ^C rsync error: unexplained error (code 130) at rsync.c(541) [sender=3.0.7] 約六割が転送済み takao$ ls -l bigfile /var/tmp/bigfile -r-xrwsr-x 1 www-data www-data 1073709056 2011-11-24 23:48 bigfile -rw------- 1 tengu tengu 605552640 20

    rsyncで再開可能なファイル転送 - karasuyamatenguの日記
    Metaphone
    Metaphone 2012/06/21
    rsync が途中で切れても泣かないために
  • cron で > /dev/null して椅子を投げられないための3つの方法 - 酒日記 はてな支店

    (タイトルは釣りです) いい加減、>/dev/null 2>&1と書くのをやめたらどうか - DQNEO起業日記 この記事のタイトルが twitter で流れてきたのを見て、「そうだ!出力を /dev/null に捨てるなんてとんでもないよね!」と思ってよく読んだら /dev/null に間違いなく捨てる方法だったのでつい crontabに > /dev/null 書いたら椅子投げる 2012-06-13 00:01:17 via YoruFukurou とつぶやいてしまったのですが、では出力を捨てないためにはどうすればいいのか。現時点での個人的ベストプラクティスを書き留めておきます。 デフォルト : メールで送る (MAILTO) せっかく cron daemon がログを捨てないためにわざわざメールで送ってくれるのに、それを > /dev/null で踏みにじるとはひどい。 とはいえ、

    Metaphone
    Metaphone 2012/06/13
    crontab からデヴヌらないために
  • いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記

    はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニアインフラエンジニア)向けのものではありません。 年に数回crontabをいじるような現場(サーバに詳しくないアプリケーションプログラマが多数を占めるような現場とか、Webデザイナや非プログラマがcrontabをおそるおそるいじったりするような現場)を想定しています。 >/dev/null 2>&1 の問題点 この記法の問題点は、「覚えにくい、間違えやすい、間違ってても気づかない」ということです。 初心者を迷わせる要素がこんなにあります。 >/dev/nullは先か後か 1と2はどちらが先か &はどこに書くのか よって下記のように多種多様なミスが起こり得ます。 2>&1 >/dev/null >/dev/null 1>&2 >/dev/null 2>1& >/dev/null &2>1 これをぱっと見て

    いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記
    Metaphone
    Metaphone 2012/06/13
    crontab からデヴヌるために
  • Linuxのメモリ上のキャッシュを解放する - 元RX-7乗りの適当な日々

    いつも思いだすのに時間がかかるというか、ググるのでメモ。 例えば、ベンチマークとかをとっていて、残ったキャッシュを奇麗さっぱりに消したい時とかに使う。 Linuxのメモリで保持しているキャッシュをクリアするには、以下を実行する。 # sync # echo 3 > /proc/sys/vm/drop_caches 値の意味としては、、、 1: ページキャッシュを解放 2: dentry、inode を解放 3: ページキャッシュ、dentry、inode を解放 以下を参考に。 /proc/sys/vm/drop_caches (Linux 2.6.16 以降) このファイルに書き込みを行うことで、クリーンなキャッシュ、dentry、 inode をメモリ上から外し、そのメモリを解放する。 ページキャッシュを解放するには、 echo 1 > /proc/sys/vm/drop_caches

    Linuxのメモリ上のキャッシュを解放する - 元RX-7乗りの適当な日々
    Metaphone
    Metaphone 2012/06/01
    sync を実行してからページキャッシュ、 dentry, inode 解放
  • curlでボトルネック調査をする - 256bitの殺人メニュー

    ますだっくすさんが curlのエントリ書いてたのでおいらも1つだけ追記しませう。 Webサイトのボトルネック調査 あるサイトでアクセスが遅いなぁ、って話になったときにまず当たりをつけるために遅い部分を調べたい。 って時のcurlの使い方。 実際の手順 基的には、前述のますだっく(@masudak)さんの、「その3. レスポンスの出力を加工する」であるのですが、詳細な項目を設定することで問題の切り分けにも使用できます。 出力フォーマット用のファイル。 cat <<'EOF' >/tmp/curl_env.txt url_effective\t\t: %{url_effective}\n http_code\t\t: %{http_code}\n http_connect\t\t: %{http_connect}\n time_total\t\t: %{time_total}\n time_

    curlでボトルネック調査をする - 256bitの殺人メニュー
    Metaphone
    Metaphone 2012/05/07
    curl にオプションくっつけて応答時間とかをなかなか詳細に確認できる
  • ホームディレクトリの引越し

    Linux活用日記 Last modified: Oct 9th, 2000 /home や /var といったディレクトリは, 出来れば別のパーテーションに置きたいところです. この文書では, 現在ひとつのパーテーションにすべてのディレクトリが収まっている環境下で, /home ディレクトリを別のパーテーションに移動する手順についてご紹介します. この操作は危険を伴いますので必ずバックアップを取っておくのが良いでしょう. またこの操作は /usr ディレクトリに対して行わないようにしましょう. /usr を別のパーテーションに置きたい場合は Linux オペレーティングシステムをセットアップする時に行うようにして下さい. 例えば, Linux を1番目のハードディスクの先頭のパーテーション /dev/hda1 にインストールしていたとします. そして2番目のパーテーション /dev/hd

    Metaphone
    Metaphone 2012/04/17
    当たり前のことしかやってないですけどなんとなく
  • tail -f と 多段grep : 野ログはノロキュアMaxHeart

    tail -f access.log みたいな感じでログを追うことはよくありますよね。 いやでもほむほむに関するログだけでいいわー。って時は tail -f access.log | grep homuhomu みたいにしますよね。 青いのが関係するログはいらないわーって時更に tail -f access.log | grep homuhomu | grep -v sayaka みたいにしますよね。 grep1段階までなら問題ないんですが、多段のgrepをかました時にtail -f してるのにリアルタイムに出力されねー。 なんかまとめて表示されるんだけど・・・ ってなりませんか? これgrepが出力先が標準出力かどうかを見てbufferを切り替えているかららしいです。 オプションで行単位のbufferに変えられるのでパイプに対して出力しているgrepに --line-bufferedとい

    tail -f と 多段grep : 野ログはノロキュアMaxHeart
    Metaphone
    Metaphone 2011/07/06
    多段grep噛ませてtail -fするとリアルタイム出力されないので行単位でのバッファをオプションで指定してあげる
  • http://www.ecoop.net/memo/2008-02-21-2.html

    http://www.ecoop.net/memo/2008-02-21-2.html
    Metaphone
    Metaphone 2011/02/14
    nohupせずに時間かかるコマンドを投げてしまった場合、bgした後でdisownすればジョブを端末から切り離せる
  • 25 Best SSH Commands / Tricks – UrFix's Blog

    OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on. Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is. OpenSSH encrypts all traffic (including passwords) to effectively eliminate eavesdropping, connection hijacking, and other attacks.  The encryption that OpenSSH provides

    Metaphone
    Metaphone 2010/12/07
    SSH絡みの便利コマンドやらオプションやらワンライナーやら
  • Linuxコマンドでテキストデータを自在に操る - じっくりコトコト煮込んだみかん

    Linuxでテキストデータを扱うときに、コマンドをパイプで繋げるだけでいろいろな処理ができて面白いのですが、綺麗に整理されていない気がするのでまとめてみます。ここでは、cat, paste, join, grep, head, tail, cut, awk, sed, tr, sort, uniq, wc を取り上げます。 ファイルを縦に結合 ファイルを縦に結合します。 コマンド 説明 cat file1 file2 ... file1, file2, ... を縦に結合 cat file | ... としてファイルの中身をパイプに流すのにもよく使います。 ファイルを横に結合 ファイルを横に結合します。あまり使わない?*1 コマンド 説明 paste file1 file2 .. file1, file2, ... を横に結合 join file1 file2 file1 と file2

    Linuxコマンドでテキストデータを自在に操る - じっくりコトコト煮込んだみかん
    Metaphone
    Metaphone 2010/09/19
    Linux上でテキストデータをあれこれするまとめ。pasteコマンド知らなかった!
  • ps aux | grep hogehoge で grep プロセスを出さない方法 -

    友人にクイズで出されてわからなかったのだが、 $ ps aux | grep init root 1 0.0 0.0 23820 2016 ? Ss 03:02 0:00 /sbin/init account1 3154 0.0 0.0 7176 1016 pts/0 S+ 14:17 0:00 grep init となるが、どうやって grep プロセスが表示に含まれるのを除去するか。もちろん ps aux | grep init | grep -v grep とかでもよいが、grep 1回で済ますには・・・? $ ps aux | grep '[i]nit' root 1 0.0 0.0 23820 2016 ? Ss 03:02 0:00 /sbin/init 衝撃を受けました。 追記 pgrep -lf init という技も教えてもらいました。 追記2 $ touch init $

    ps aux | grep hogehoge で grep プロセスを出さない方法 -
    Metaphone
    Metaphone 2010/07/06
    おおえ??
  • 地雷だらけのrsyncを理解する。 - こせきの技術日記

    rsync -avz --exclude-from=pattern-file --delete SRC/ DEST SRCの末尾に/をつける。たいてい必要。 SRCスラッシュの有無は、mv SRC DEST と mv SRC/* DEST の違いと一緒。スラッシュの後ろに*が省略されているものと考える。 DESTのスラッシュの有無は関係なし。 --dry-run(-n)をつけて試す。 SRC、DESTともローカルのディレクトリを指定して試す。 DESTはまず空ディレクトリで試す。DESTが同期済みだと何が更新されるのか正確にわからないので。 --list-onlyをつけてファイル一覧を得る。 DESTを省略してファイル一覧を得る。 --list-onlyと同じ? --deleteはDESTのファイルを根こそぎ削除する可能性がある。注意。 --delete-excludedは使わない。--d

    地雷だらけのrsyncを理解する。 - こせきの技術日記
    Metaphone
    Metaphone 2009/07/30
    踏んだ、踏んだ、踏んでない、踏んだ、前にも踏んだ、踏んだ……