続いてrootに関する設定を行います。 以下ではrootになれるユーザーおよびsudoコマンドの実行ユーザーの設定を行っています。 # vim /etc/pam.d/su # 以下の行のコメントを外す auth required pam_wheel.so use_uid # visudo # 以下の行のコメントを外す %wheel ALL=(ALL) ALL
![CentOSの初期設定で最低限やること(@さくらのVPS) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/daed86ea297bcd3096a99c34975696fe159e1c68/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Q2VudE9TJUUzJTgxJUFFJUU1JTg4JTlEJUU2JTlDJTlGJUU4JUE4JUFEJUU1JUFFJTlBJUUzJTgxJUE3JUU2JTlDJTgwJUU0JUJEJThFJUU5JTk5JTkwJUUzJTgyJTg0JUUzJTgyJThCJUUzJTgxJTkzJUUzJTgxJUE4JTI4JTQwJUUzJTgxJTk1JUUzJTgxJThGJUUzJTgyJTg5JUUzJTgxJUFFVlBTJTI5JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0yOTY0MGUwZmFiMDY0YTg2ODVhNTJiNzliYmZhZDRjMQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweXVwc3kmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWViYzJjZjNmNDA0MGZmOWExYWYzZjQzZTAxODlhMTFj%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Deb97882e58edb65ccee255bed498c724)
前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはできない)。 さて、まずは特殊変数を一覧でまとめてみる。お馴染みのものが多いが、最後の2つ(特に最後のPIPESTATUS)についてはきっと今まで知らなかった人もいるんじゃないだろうか。シェルの中でパイプすると途中のコマンドのリターンコード、拾えないとか思っていませんか?今回のポイントとしては、「1. PIPESTATUS変数について」と「2. 特殊変数 $@と$*の違いについて」の2点を主に説明する。 特殊変数一覧表 変数名 自動的に設定される値 $? 直前に実行されたコマンドの終了ステータスが設定される変数。正常終了の場合は「0」、異常終了の場
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とい
はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立
MySQLアクセスを負荷分散する ユーザーからのアクセス数が非常に多いWebサイトにおいて、MySQLのSLAVEサーバーを複数台並べて負荷分散させるということがよく行われています。ただ、Webアクセスの負荷分散は一般的なテーマなのでいろいろなところで語られているのに対し、DBアクセスの負荷分散というテーマは一般的でないのかあまり語られていないように感じます。 DBアクセスを負荷分散するにあたって一番荒っぽい方法は、Webサーバー上のプログラムの中でどのSLAVEサーバーに接続するかをランダムで決める方法です。ランダムと言っても長時間アクセスしているとほぼ接続先が均等化されるので、一見この方法でも問題ないように見えます。しかしこの方法だと、接続しに行こうとしたSLAVEサーバーが高負荷もしくはサービス停止中であっても構わず接続しに行ってしまうという問題があります。 このような問題を解決する
MySQLのインストール方法が進化していた! - sakaikの日々雑感〜(T)編 http://d.hatena.ne.jp/sakaik/20130205/mysql5_6_install こちらの記事を読んだら使ってみたくなったので、 MySQL 5.6 を CentOS 6.3(x86_64) にインストールしてみました。 手順もほぼ上記記事と同じです。 CentOS 6 なので以下のように yum に RPM ファイルの URL を直接指定してインストールできます。 # yum install http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-client-5.6.10-1.el6.x86_64.rpm \ http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/
バージョン5.6 が待望のGAとなりました!早速、あいていたサーバに入れてみました。インストール後の設定が、至れり尽くせりになっていて、びっくり!*1 ちょっと引用が長くなるけど、敢えて途中のカットとかをしないで載せたいと思います。 あ、linux(CentOS) へのインストールです。 まず、取得したrpmのファイルを使ってインストールします。 # rpm -ivh MySQL-server-5.6.10-1.rhel5.x86_64.rpm Preparing... ########################################### [100%] 1:MySQL-server ########################################### [100%]すると、数分間かけて、以下のような文字列がつらつらと表示されてきます(ここでは、コメントをい
2012-11-02 結論から言えば、とりあえず RHLE6/CentOS6 な人は /etc/resolv.conf に options single-request-reopen を書いておこうという話です(全部小文字ですよ、念のため) なぜか? RHEL5/CentOS5/Ubuntu 10.04なLinuxとかでは、FQDN の解決をするときに DNSキャッシュサーバに AAAA RR の Queryを投げる AAAA RR の Reply を受ける DNSキャッシュサーバに A RR の Queryを投げる A RR の Reply を受ける という挙動でしたが、RHEL6/CentOS6 では DNSキャッシュサーバに A RR の Queryを投げる DNSキャッシュサーバに AAAA RR の Queryを投げる A RR の Reply を受ける AAAA RR の Re
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 の後に並列
サーバの動作に異常が発生した際に原因を探るためのLinuxコマンドで、自分用のメモです。 全てmanとかググったら出てくるので説明は適当です。思いついたら後で追記していくかもです。 対象はDebian Squeezeになります。 全てパッケージインストールできるもので、パッケージ名は [in packagename] としてあります。 各所よりコメントありがとうございます。 良さ気なコマンドは追記していきます。 <追加したコマンド> * telnet (+コメント wget, netcat) * arp (+コメント arpwatch) * pstree * fdisk コメントに gdisk * host, dig * watch * reboot
PHPでサーバーの死活管理 サーバーが生きてるか死んでるかを確認するのにPingを使う方はいると思いますが、 今回PHPからPingを使う方法を知ったので自分用にメモ。 execを使用する方法、fsocketopenを使用する方法の2パターンありますが、 fsockeopneを使用するとポートの指定も出来るので、MySQLやApacheが稼働しているかのチェックにも使えます。 ソースコードは以下 execでサーバーにpingを送信する方法 /* Ping送信プログラム */ function ping($host) { $r = exec(sprintf('ping -c 1 -W 5 %s', escapeshellarg($host)), $res, $rval); //pingの結果を表示 //print_r($r); return $rval === 0; } /* $hostに死
2016/07/11 追記しています 皆さん負荷テストツールって普段使ってますか? WEBシステムを開発する際には、1人〜十数人で開発をすると思いますが、 受諾案件では要件を満たす開発ばかりしていて速度やパフォーマンスのチューニングを行う事が少ないと思います。 いざ運用が始まって、サーバーが落ちた・・とならないように負荷テストを事前にやっておきましょう。 Apache Benchでのサーバーパフォーマンスのチェック方法をメモしておきますので、どなたかの役に立てれば幸いです。 負荷テストとは 負荷テストって何ですか?という方のために簡単に説明をすると 低い負荷ではシステム上問題が無くても、高負荷での動作だと不具合を起こす現象を回避するためのテストです。 アクセスが集中して落ちてるサイトがありますよね。。 想定されるアクセスがあっても落ちないサイトにするための負荷テストです。 Webサーバーの
プロのためのLinuxシステム・10年効く技術 ウェブオペレーションという言葉が一般的になってきた今日、 Linux上で様々なソフトウェアを駆使し、多種多様なウェブサービスが次々と生まれ その産まれた様々なサービスを、陰ながら支えるエンジニアも増えてきました。 ウェブオペレーションエンジニアとか、インフラエンジニアとか サーバエンジニアとか、色々と呼称はあるかとは思いますが 日常的にLinuxを扱う人は、本書籍はマストアイテムです。 「はじめて読む486」、「はじめて読む8086」などを読み どうやってノイマン型コンピュータが動いているのか メモリの仕組みはどうなっているのか、HDDにどうやってデータを 書き込んでいるのか、工学系の知識が足りないながら調べたりもしましたが この書籍があれば、深い知識の森を迷うことなく、整備された美しい一歩の道を、 Linuxの知識へと続く道を歩いていくこと
Linuxシステムプログラミング 作者: Robert Love,ロバートラブ,千住治郎出版社/メーカー: オライリージャパン発売日: 2008/04/16メディア: 大型本購入: 5人 クリック: 181回この商品を含むブログ (29件) を見る 結合 Unix/Linuxの標準コマンドで2つのファイルの共通keyで連結することができます。共通keyでの結合にはjoinコマンドを利用します。joinによりSQLのinner joinに近いことがコマンドだけで出来てしまいます。今までテキスト処理をコマンドで行う事が少なかったのでjoinの活用方法を知りませんでしたが、今回調べた内容を記録します。似たコマンドとしてpasteというものもあり、こちらは同じ行数の内容を単純に結合します。そちらについても簡単に紹介します。 join join前にsort joinコマンドを利用する場合は2つのファ
なぜ、「.bash_profileと.bashrcの違い」をすぐ忘れてしまうのか? ずばり、 「どっちに書いても、実用上は対して変わらない」 からでしょう。 ちょこっと環境変数を定義する程度なら、どっちに書いても動くのです。 どっちに書いてもそれなりに動く → 違いがわからない → 忘れる これが魔の忘却ループです。 .bash_profileと.bashrcの違いを絶対に忘れない方法 ではどうすればよいか? 「違いを自分の目ではっきりと見ること」 これに尽きます。 これから、一緒に手を動かして簡単な実験をしてみましょう。 5分ほどで終ります。 準備はいいですか? ① .bash_profileにechoを書いてみる .bash_profileの最下行に1行追加します。 echo "\(うぇるかむようこそプロファイル)/" ② .bashrcにechoを書いてみる .bashrcの最下行に
#!/bin/bash ########################################################### # このスクリプトの特徴 # # 受信・通過については基本的に破棄し、ホワイトリストで許可するものを指定する。 # 送信については基本的に許可する。ただし、サーバが踏み台になり外部のサーバに迷惑をかける可能性があるので、 # 心配な場合は、送信も受信同様に基本破棄・ホワイトリストで許可するように書き換えると良い。 ########################################################### ########################################################### # 用語の統一 # わかりやすさのためルールとコメントの用語を以下に統一する # ACCEPT :
こんばんは、牧野です。 一時期また夜型になってしまっていたのですが、最近はまた朝型生活、というよりも早朝型生活になりました。 仕事の方はというとsymfony案件は一段落して、今はオリジナルのフレームワーク、ライブラリでプログラムを作ったり、javascriptのプログラムを1から書いたりと、マイペースでやっています。 さて、今日も軽めなネタで、知っているといざという時に役立つ、かもしれないLinuxのコマンドです。 サーバ構築や緊急対応などでサーバを触る場合は使う機会があると思います。 ■サーバのOS情報を確認
■はじめに cron とは、ジョブ(スクリプト)を自動実行するためのデーモンプロセスです。そして、Linux システムの管理を行なう場合、ログのローテートや、バックアップなど、定期的に自動実行したいジョブが数多くあります。特に、バックアップなどは、システムへの負荷が大きいため、通常は、ユーザからのアクセスが少ない、深夜や早朝に行なわれます。 このように、定期的に実行されるジョブは、crond というデーモンによって、自動的に行なうように管理することができます。そこで、今回は、cron の設定を行なうために必要なコマンドや、設定ファイルについて説明していきたいと思います。 ■設定手順 このページでは、以下の順番で cronの設定について説明します。 まず、Linuxシステム上で、cron を使用するために、サービスの起動で、サービスの状態を確認し、停止している場合には、サービスを起動します。
今までナチュラルにcrontab -eでcron編集をしていたのだけど、実はこれはとてつもなく危ないやり方だった。ということを、今さら知った。 crontab -rの恐怖 crontabコマンドにはrオプション(Remove)があり、これを実行すると何の警告もなく全てが消え失せる。 macbook:~ ozuma$ crontab -l 15 * * * * /home/ozuma/bin/hoge.sh 0 9 1 * * /home/ozuma/bin/piyo.sh > /dev/null 2>&1 */5 * * * * /home/ozuma/bin/fuga.sh > /dev/null 2>&1 macbook:~ ozuma$ crontab -r macbook:~ ozuma$ crontab -l crontab: no crontab for ozuma macbo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く