タグ

linuxに関するxai1981のブックマーク (83)

  • Server World - ネットワークサーバー構築

    CentOS, Ubuntu, Fedora, Debian, Windows Server でのネットワークサーバー構築方法

  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、何もせずに終了ステータス0(つまり正常終了)を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト元/先と

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
  • Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ

    Linux kernel 3.9 のマージウィンドウでは SO_REUSEPORT というソケットオプションがマージされました。 Merge branch 'soreuseport' · c617f39 · torvalds/linux · GitHub これは同一ポートに複数のリスナー(listen ソケット)が bind できるようになるというもので、Webサーバなど単一のポートに多くのコネクションが来るようなワークロードで、複数プロセスでうまく負荷分散ができるようになるそうです。 (これまでだと一人がaccept()してそれぞれの worker に渡すというようなモデルがありましたが、これでは accept() する部分がボトルネックになってしまいがちでした。) BSDでは元々 SO_REUSEPORT オプションはあったようですが、マルチキャスト通信で使うもののようです。Linux

    Linux kernel 3.9 の新機能 SO_REUSEPORT を試してみる - nigakyのブログ
  • I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;

    サーバ周りの勉強していると、たまにselectとかepollとか言葉が出てきて、理解できてなかったので調べてみた。 I/Oの多重化 例えばサーバ周りの実装を、特に何も考えずにやると、I/Oでブロッキングが発生し、一つのクライアントとしか通信できないということが起こります。これを解決するために fork threads I/Oの多重化 非同期I/O といった方法があります。 この中のI/Oの多重化を実装するためのシステムコールとして、select, poll, epoll, kqueueなどは実装されているようです。 少し調べてみると、次のような記述のような機能をそれぞれが実装するようです。 プログラムで複数のファイルディスクリプタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つ

    I/Oを多重化するためのシステムコール(select, poll, epoll, kqueue) - $shibayu36->blog;
  • Linuxシステムコール徹底ガイド | POSTD

    要約 この記事では、LinuxカーネルにてLinuxプログラムがどのように関数を呼び出すのかについて紹介していきます。 システムコールを行う様々な方法、システムコールを行うための独自のアセンブリの作成方法(例あり)、システムコールへのカーネルエントリポイント、システムコールからのカーネルイグジットポイント、glibcのラッパ関数、バグなど多くの点について説明します。 要約 システムコールとは? 必要条件に関する情報 ハードウェアとソフトウェア ユーザプログラム、カーネル、CPUの特権レベル 割り込み モデル固有レジスタ(MSR) アセンブリコードでシステムコールを呼び出すことの問題点 レガシーシステムコール 独自のアセンブリを用いたレガシーシステムコールの使用 カーネル側での int $0x80 エントリポイント iret を使用したレガシーシステムコールからの復帰 高速システムコール 3

    Linuxシステムコール徹底ガイド | POSTD
  • このポートで実行中のプロセスはどれ? lsofコマンドの使い方

    プロセスが開いているファイルを表示するコマンド「lsof」は、プロセスやソケットなどのあらゆる情報をファイルの形で管理するUNIX/Linuxの特性を生かしたもの。プロセスが使用するポートの調査に役立ちます。 連載バックナンバー 連載では、ネットワーク管理の基コマンドを順を追って紹介していきます。基書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。今回は、プロセスが開いているファイルを調べる際に使う「lsof」コマンドを紹介します。 なお、連載では、執筆時点の最新版「Red Hat Enterprise Linux(RHEL)」および「CentOS」環境で動作を確認しています。また、用法事例はIPv4(Internet Protocol version 4)ネットワークを前提にしています。

    このポートで実行中のプロセスはどれ? lsofコマンドの使い方
  • 開発用 PC を Windows から Linux 変更したときの 各種ソフトの乗り換えまとめ - Qiita

    Windows から CentOS7 に乗り換えて半年経ったので、まとめておきます。 他のディストリビューションでも使えるものが多いと思います。 項目 Windows CentOS 備考

    開発用 PC を Windows から Linux 変更したときの 各種ソフトの乗り換えまとめ - Qiita
  • プログラマーが「ネットワーク怪しくない?」と思った時に覚えておくと便利なことまとめ - LIVESENSE ENGINEER BLOG

    インフラエンジニアの中西です。 最近プログラマーからこのような話を耳にします。 「ネットワークって難しい/よくわからない」 最近ではAWS,GCPをはじめとするクラウドサービスが充実しているのでWeb界隈のエンジニアはなおさら気にするシーンが少なくなったように思います。 今日は最低限これだけ覚えていたら有事の際にちょっとは役に立ちますよという話が出来たらなと思います。 書式統一のため sudo を省略しています。ご容赦下さい。 コマンド編 ping ping です。疎通確認を行う時のコマンドです。 さすがに分かると聞こえてきそうですね。 例えば、192.168.1.1 というサーバに通信を確認したい場合はこうです。 $ ping 192.168.1.1 繋がる場合はこうなります。 $ ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 d

    プログラマーが「ネットワーク怪しくない?」と思った時に覚えておくと便利なことまとめ - LIVESENSE ENGINEER BLOG
  • 【Linux】stressコマンドを使わずに手軽にCPU負荷をかける方法 - APC 技術ブログ

    擬似障害などでCPU負荷をかける際に一般的なstressコマンドですが、標準パッケージではないため、インストールできない場合(勝手にインストールできない、インターネットに接続できない環境など)は以下の方法で手軽にCPU負荷がかけられます。(CPU使用率/ロードアベレージ) 手順 1.以下のコマンドを実行 CPU負荷コマンド yes > /dev/null 2.1プロセスでは足りないという方は、バックグラウンドに回して複数実行 CPU負荷×10 # yes > /dev/null & # yes > /dev/null & # yes > /dev/null & # yes > /dev/null & # yes > /dev/null & # yes > /dev/null & # yes > /dev/null & # yes > /dev/null & # yes > /dev/nul

    【Linux】stressコマンドを使わずに手軽にCPU負荷をかける方法 - APC 技術ブログ
  • cron力をつけよう!全てのcrontab入門者に贈る9個のテクニック · DQNEO日記

    なお、時間設定方法や書式についてはここでは解説しません。 拙作「くろんメーカ」をお使いください。 くろんメーカ - crontab用のコマンドを自動で生成します。 そのままコピペしてお使いください。 crontab -e で直接編集しない 有名な話ですが、crontab -r とやってしまうと全てが一瞬で消え去ります。 まさにバルス! 間違えて crontab -r してしまい、crontab をふっとばしてしまった。つか、隣同士にある -e と -r で編集と削除とか、酷いよ><。。。 crontab -r を安全にする - antipop 必ずローカルファイルに設定を書いたうえで、それを反映させるようにしましょう。 $ crontab -l > ~/crontab # 現在の設定をバックアップ $ vi ~/crontab # ローカルファイルを編集 $ crontab < ~/cro

    cron力をつけよう!全てのcrontab入門者に贈る9個のテクニック · DQNEO日記
  • 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
  • 初心者の頃に知っておきたかった rpm と yum の違いと使い分け

  • PATHを通すために環境変数の設定を理解する (Mac OS X) - Qiita

    前回の投稿 PATHを通すとは? (Mac OS X) PATHを通すには特定のファイルにexport PATH=$PATH:追加したいコマンド検索パスのような記述を追加するみたいですが、記述内容が理解できず「exportって何?何故$PATHを記述しているの?」状態だったのでそれに関しての備忘録です。 #PATHの通し方 ~/.bashrcや~/.bash_profileに以下のコマンドを記述する。(記述はどちらかで良い。)

    PATHを通すために環境変数の設定を理解する (Mac OS X) - Qiita
  • 本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita

    .bash_profile はログイン時にのみ実行されます。具体的な用途は: 環境変数を設定する (export する変数) 環境変数はプロセス間で勝手に受け継がれるのでログイン時のみ設定すれば十分です。 .bashrc は対話モードの bash を起動する時に毎回実行されます。具体的な用途は: 環境変数でない変数を設定する (export しない変数) エイリアスを定義する シェル関数を定義する コマンドライン補完の設定をする これらは bash を起動する度に毎回設定する必要があるものです。 その他 .bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? を参照。もっと突き詰めたい人は Linux: .bashrcと.bash_profileの違いを今度こそ理解する。 Bash 以外のシェルを使用しない人は .bash_profile と .bashrc

    本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita
  • .bashrc と .bash_profile 結局どっちを使えばいい? | 王様うさぎの部屋

    bash (Bourne-Again Shell) の設定ファイルについて。 ログインシェルをbashにしている場合、ログイン時に以下のような順番で設定ファイルが読み込まれる(らしい)。 1. /etc/profile 2. ~/.bash_profile (存在していれば) 3. ~/.bash_login (存在していれば) 4. ~/.profile (存在していれば) 一応書いておくと 「~/」 はユーザーのホームディレクトリの意味。 最初に読み込まれる /etc/profile はシステムの全ユーザーに適用されるので、各ユーザーの個人設定目的で編集してはいけない。 その次に読み込まれるのが ~/.bash_profile なので、パスを通す、エイリアスを定義する、といった個人設定には基的に ~/.bash_profile を使えばいいみたい。 じゃあ ~/.bashrc は何の

    .bashrc と .bash_profile 結局どっちを使えばいい? | 王様うさぎの部屋
  • 5分で終わらせるCentOS7のfirewalld設定

    # status systemctl status firewalld # start systemctl start firewalld # stop systemctl stop firewalld # 有効な設定を確認 >>> firewall-cmd --list-services --zone=public --permanent dhcpv6-client # 設定追加(sshとmysqlを追加) firewall-cmd --add-service=ssh --zone=public --permanent firewall-cmd --add-service=mysql --zone=public --permanent # 設定削除(sshを削除) firewall-cmd --remove-service=ssh --zone=public --permanent #

    5分で終わらせるCentOS7のfirewalld設定
  • Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita

    なぜStackOverflowか Upvote/Downvoteの仕組みにより、自然とベストプラクティスが蓄積されている 世界中のプログラマの目に晒されているため質が高い 答えが幾つか出されているため視野が広がる・一つの手法に固執することがない 英語の勉強にもなる StackOverflowのおすすめの見方 質問はまずしっかり理解する それに対する答えを比較してみて、なぜそう動くのかを考える コメント欄はFont Size的には小さいが、かなり濃いコメントが書かれていることが多いので暇なら目を通す 10. Looping through the content of a file in Bash? ファイルの内容をループで取得するためのベストプラクティス。 (2015/10/23 : 節修正しました。@heliac2000 さん、@kawazさん、ありがとうございました。詳しくは記事コ

    Linuxに関わる人が一度は読むべきStackOverflowまとめ - Qiita
  • ¥Ñ¥¹(PATH)¤Î³Îǧ¤ÈÀßÄêÊýË¡¤Ï¡© - Pocketstudio.jp Linux Wiki

    ¤½¤â¤½¤â¥Ñ¥¹(PATH)¤Ã¤Æ¡© † ¡¡¥Ñ¥¹(PATH)¤Ï±Ñ¸ì¤Ç¡Ø ·ÐÏ© ¡Ù¤È¤¤¤¦°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£·ÐÏ©¤È¤¤¤¦¤è¤ê¤Ï¡¢¤à¤·¤í¡¢¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¥×¥í¥°¥é¥à¤Î¤¢¤ë¾ì½ê¤È¹Í¤¨¤¿Êý¤¬Îɤ¤¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¡¡´Êñ¤Ë¡Ê³Ú¤Ë¡Ë¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¡¢¥Ñ¥¹¤ÎÀßÄê¤ò¤¹¤ë»ö¤ò¡Ø ¥Ñ¥¹¤òÄ̤¹ ¡Ù¤È¸À¤¤¤Þ¤¹¡£ ¡¡¤¿¤È¤¨¤Ð /usr/local/pgsql/bin/psql ¤È¤¤¤¦¥³¥Þ¥ó¥É¤ò psql ¤È¤À¤±ÆþÎϤ·¤Æ¼Â¹Ô¤µ¤»¤ë¤È¤·¤Þ¤¹¡£¤³¤Î¾ì¹ç psql ¤È¤¤¤¦¥³¥Þ¥ó¥É¤¬¤¢¤ë¾ì½ê¤¬

  • 攻撃を受ける前に見直すApacheの基本的なセキュリティ10のポイント

    こんにちは、ITエンジニアのKomuraです。 ウェブサーバーにApache HTTPDを採用している環境、まだまだ多いですよね。このApache HTTPDですが、インストールはRPM等のパッケージからコマンド一発で完了しますので、導入の敷居は低くなっています。ただ、インストールして簡単に動作してしまうことから来、インストール後に必要なセキュリティ設定がなおざりになっているウェブサーバーを良く見受けます。 セキュリティホールやウェブサイトへの攻撃を考えると、Apache HTTPDの基的なセキュリティ設定は必須になっています。今回の記事では、Apache HTTPDを利用したウェブサーバー環境をもう一度見直して、基的なセキュリティ設定を確認する手順について説明します。 内容は、監査法人などが実施するセキュリティ脆弱性チェックの対策としても有効な情報ですので、セキュリティチェックを

    攻撃を受ける前に見直すApacheの基本的なセキュリティ10のポイント
  • TeraTermの表示について - OKWAVE

    その現象が起こる前に、.bashrc 等の設定用ファイルを変更していませんか? これはTeraTermではなく、シェルの設定の問題です。 man bash を読めば、次のことがわかります。 ・bash起動時やログイン時に実行されるファイルがある (~/.bashrc等) ・プロンプトは 環境変数PS1 で設定する PS1の初期値は 「\s-\v\$ 」。これは 「シェル名-バージョン#」と表示される、という意味 そこから「これまでログイン時にPS1を設定していたが、設定ファイルに変更があり、設定されなくなった」と考えるのが妥当です。 何かをインストールした→インストール方法の中に「.bashrcを変更しろ」と指示があった →変更方法を間違えた(追記ではなく上書きして従来のPS1の設定が消えた。追記した部分に間違いがあって、PS1を設定している行が実行されない、等) 等が考えられます

    TeraTermの表示について - OKWAVE