Tag linuxを表示しています。
2020.5.12 火
diffコマンドとか1ファイルだったらまだいいけど、塊として見る場合はクソなので、gitで差分をまるっと確かめるという方法です。 ブランチ間の差分を見てみる ブランチ間のdiffは`git diff BRANCH-A BRANCH-Bで確認できるのだけど、ファイル数がやたらと多く、どのファイルに差分があるかのみ見たい場合はファイルパスだけ表示するようにします。 $ git diff BRANCH-A BRANCH-B --name-only
2020.3.14 土
リモートホストからアクセスする redis-cli -h #{ホスト名} -p #{ポート番号} -n #{DB番号}
2020.3.1 日
GCPのVMインスタンスは恒久的に25番ポートの利用ができない上に自身のVMで「注: ポート 25 は常にブロックされており、G Suite を使用した SMTP リレーを介したとしても利用できません。」となっております。AWSは申請制度でユーザーの審査が通れば25ポートを使うことができますがGCPは無理っぽい。 インスタンスからのメールの送信 じゃ、どうすればいいかというと、外部のSMTPサーバーにサブミッションポート587で送信を委譲するかたちにしないといけないということで結構面倒です。 ここではGmailアカウントでSMTPサーバーを使えるように設定してから、postfixの設定したVMインスタンスでGmailのSMTPを使って送信できるように設定します。 GoogleアカウントでSM...
2020.3.1 日
まずそもそもtcpdumpのコマンドがインストールされていないことが多いので、使えない場合はインストールから。 # which tcpdump /usr/bin/which: no tcpdump in (/sbin:/bin:/usr/sbin:/usr/bin) yum -y install tcpdump インストールできたら、とりあえず、 tcpdump とやってみます。目まぐるしいアクセスでバーっとログが出てくるんですが、これがtcpの通信をdumpしている状態です。この状態は量が多すぎて何もわからないので、ある程度フィルタリングしたりして使うのが普通です。 - インターフェイスを選ぶ - ホストを限定する ### インターフェイスを選ぶ `ip a`などでネットワークのインターフ...
2020.2.22 土
LAN内でしか動かないWEBシステムを見るときには非常に便利。VPNなどが最も楽であるのは事実なのですが設備を導入すること自体が非常に敷居が高いし設定するまで手間がかかるので、SSHさえ接続できれば踏み台サーバーから中に入ってブラウザーで見ることができるっつうやつです。まずは踏み台サーバーがすでにあることを前提としているので踏み台サーバーにアクセスできるところから始めます。 正確にいうとPort Forwardとか言うのだけど、このあたりの説明は他のサイトでも図解で詳しく説明してくれているので割愛。 コマンドラインで行う場合は、 $ ssh -v -N -L localhost:8888:192.168.0.3:80 -i /SSHKEY/ -p 1206 user@123.456.789....
2020.2.13 木
ログレベルを3以上にしていると、大量にログが出るのでローテートしてないとダメ。 /var/log/samba/log.%m すごい量になってる。 /etc/smb.conf (/usr/local/samba/etc/smb.conf) とかあたりにconfigファイルがあるので、それを修正。log level = 3をlog level = 2以下に修正します。 # --------------------------- Logging Options ----------------------------- log level = 2 log file = /var/log/samba/log.%m max log size = 5000
2020.1.27 月
現在のジョブを確認。何もない $ jobs -l 一度普通にSCPを実行する。 $ scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt [commnad]+[Z]でいったん止める。するとjob番号が出てくるので、 $ [1]+ Stopped scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt そのジョブ番号で、バックグラウンド実行を登録します。 $ bg 1 [1]+ scp -p -P 22 /foo/bar.txt user@xxx.xxx.xxx.xxx:/tmp/foo/bar.txt & 登録すると、バックグラウンドの実行...
2020.1.1 水
CentOS8がもう出てしましました。いろいろまた変わりました。変わらないところと変わっているところとあって、面倒くさいですね。 Installと初期設定 /etc/skel/の設定 .bash_profileにショートカットを登録する。これがないとすごい不便。/etc/skel/にある雛形に追加しておくと今後新規で追加した際にはこの雛形が反映されます。ちなみにこのディレクトリはユーザーが新規で作成されるたびに反映されるので、全く別のファイルを追加しておくこともできます。 # /etc/skel/.bash_profile # 以下追加
2019.12.11 水
ファイルの数をカウントする(ファイルの数を数える) ./と../、Toatal行が出るので3行抜いた数で計算しないと合わなくなります。 # ls -al ./DIR | wc -l この数からマイナス3をした数がファイル数です。(が、中にディレクトリがある場合は、それも加算されちゃうので、findでやった方がいいかも。)
2018.9.5 水
ちょっと数年前はものすごく使いづらいところあったAWSですが最近はドチャクソ使いやすい。 Amazon Linux 2 AMIはとてもCentOSっぽいというだけで特に選択した理由はないです。 EC2インスタンスの作成 Elastic IPの設定 EC2インスタンスにログイン rootになる 基本設定 Tools類(絶対使うやつ) EC2インスタンスの作成 AWSのコンソールにログインしてEC2に移動。左メニューのインスタンスを選択すると次のページの上部に青いボタンで「インスタンスの作成」というボタンがあるので、そこから新しいインスタンスを作成します。 AMIの選択で「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択。 無料枠のt2.microを(と...
2018.8.29 水
サーバーが死にそうになっているときのマニュアルです。 サーバークラスタリングとかスケールアウトとかスケールアップとか考えた方がいい。クラウドフロント辺りのキャッシュサーバでもいいかも。 原因は?と聞かれますがたいていは「サーバースペックがショボいから」というのが大半。 急いでやるやつ rootでログイン 簡易的に状態をみる load average 目でだいたいの状態を把握する top HDDの容量 df ブラウザーアクセスやSSHでログインして明らかに操作が遅延したり見た目で動きがもっさりしていたりする、あるいは監視のアラートメールが来たりしているピーク時に目視するのが目的のコマンドになります。 落ち着いてやるやつ procs memory swap io system cpu プロセスを...
2018.8.22 水
各ユーザーのデフォルトの挙動を追加したりするにはLinuxのprofileの仕組みを使います。この機能についてはなんか全般的に名前ってないんですかね。 各設定は継承されるようになっていて/etc/profileが最優先で読み込まれ設定されます。これは全ユーザーに反映されます。~/から各ユーザーに個別に設定することが可能になっています。 設定される優先順位 /etc/profile /etc/profile/profile.d/* ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc /etc/bashrc となっています。 設定 PATH 環境変数の設定 (例) export PATH=$PATH:/usr/local/mysql/bin PS...
2018.7.27 金
AWSとかSaas系のサービスではプロンプトがローカルIPアドレスになったりするのだけどかなり見づらいので変更します。 この方法はホスト名に影響を与えないで変更するので、各ユーザーでやらないといけない設定なので、/etc/skelに設定しておく方がいいと思います。 HOSTNAME@USERNAME 00:00: という風にします。 .bashrcを開いて以下を追加します。 # シンプルなところで。 PS1="[\u@hostname \W]#" # いろいろカスタマイズしたい人は。。 PS1='\[\e[33m\]bluma@\u \[\e[34m\]\t \[\e[37m:' 使える変数がいっぱいあるのでお好みで。 反映するときは、 $ source .bashrc これでOKです。 L...
2018.5.9 水
できるだけプロダクト環境というか実践に耐えうるnodeサーバーの構築方法です。バージョンアップと開発がやたらにスピーディーなのでプロダクトって何のことやらという話でもあるのですが。ちなみに2018-05-09現在のものになります。 version Node.js 8.11.1を選びます。 リリース一覧ではLTSの最新になっているからです。どこからダウンロードすればいいのか探してみたら、 http://nodejs.org/dist/ ここらでダウンロードできそうです。 ソースの入手とインストール (最新版をバイナリからインストール) もう、どれとってくればいいんだかわからんです。 https://nodejs.org/download/release/v8.11.1/ よくわからんので、 n...
2017.12.5 火
セキュリティー的にもまたはサーバー設定時にもポートスキャンは何だかんだで使うのでコマンドラインで確認しましょう! (全然他人のIPを無限にポートスキャンするとあまり気持ちよくないのでやめましょう!) nmap 普通はデフォルトでインストールされているものではないのでyumからインストール yum -y install nmap これで使えるようになります。 普通に使う nmap localhost UDPで利用しているポート nmap -sUV localhost TCPで利用しているポート確認 nmap -sTV localhost netstat nmapが使えない場合はnetstatでやるといいかも。 UDPで利用しているポート netstat -lp --udp TCPで利用している...
2017.10.26 木
WEBやシステムの開発で複数のユーザーが同じコンテンツを制作する場合があります。そのような場合はユーザーにグループを紐付けて権限の調整を行います。(ってそんな必要あるんですかね。仕事ではやたらにやりますが。) user01は/home/user01/のファイルの読み書き実行のパーミッションがあります。その中の/home/user01/foo/だけuser02が読み書き実行の権限があり、その他のディレクトリは読みのみというような設定をしてみます。 user: user01 (/home/user01/*の読み書き実行権限(デフォルト)) user: user02 (/home/user01/foo/*のみ読み書き実行権限) group: group01 (共有箇所の権限を設定するグループ) ユ...
2017.9.19 火
自動起動サービスのリスト表示 長年親しんできたchkconfigがいなくなってsystemctl list-unit-files -t serviceという長ったらしいコマンドになりました。 [CentOS6] chkconfig --list [CentOS7] systemctl list-unit-files -t service systemctl使うと長ったらしいので、 ls -al /usr/lib/systemd/system/ で一覧見た方が見やすいです。 表示の形式も変わっていわゆるランレベル的なものではなくて純粋に自動起動に関して「enabled | disabled | static」というふうにステータスを表示するようになってます。 .... httpd.servic...
2017.8.31 木
/tmp/ディレクトリ下は、テンポラリ領域としてファイルの解凍や一時的に利用するファイルが書き出されています。常時稼働させている状態でしばらくの日数を経て/tmp/下を見ると、以前あったファイルが無くなっている場合がありますが、これはどのようなタイミングで削除されたのだろうかというと、1日1回実行されるcronスケジュールで実行されるスクリプト「tmpwatch」から実行されるコマンド「tmpwatch」によって判断されているっぽいです。 # file /usr/sbin/tmpwatch /usr/sbin/tmpwatch: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses...
2017.6.26 月
シンボリックリンク ln -s ./top/index.html ./index.html ln -s <実体ファイルパス> <シンボリックリンクのファイルパス>という風になっています。-sオプションを忘れずに。 毎回忘れるんだけど、手前が実体ファイル、後ろがリンク。 ハードリンク ln ./top/index.html ./index.html iノードの説明とかしません。 hard link not allowed for directoryというのが出るときがあるんですが、「ディレクトリ」「異なるファイルシステム間」「異なるパーティション間」ではリンクを作成することができません。
2017.5.30 火
SSHの設定はポリシー的なところ大きいので設定の仕方というご案内はできないんですが、だいたいこんなルールでやってます。 Rootのログインは基本禁止。*但し鍵認証+IP制限が可能であればOK。問題は鍵の管理になります。 パスワード認証は基本禁止。鍵認証推奨。*とはいえ「なんでパスワードでログインできないの?」って言われます。 ポートは22じゃない方がいい。4桁ぐらいの使っていないポート。 SSH1とかは使わない。 あとはデフォルトのままでいいと思う。 インストールと設定 CentOS7のデフォルトかどうかわからないけど、クラウドサーバとかVPNとかだと、OpenSSH_6.6.1p1がインストールされているっぽい。これちょっと古いです。 最新にしたい方はOpenSSHを最新にバージョンアップ...
2017.5.30 火
centos7.example.com = 123.456.789.xxxとして設定してゆきます。 アップデート インストール完了したら、とりあえずやっておく。 yum -y update 長い。 私的に必ず使うツール系をインストールしておく。 yum -y groupinstall "Base" yum -y groupinstall "Development tools" yum -y groupinstall "Japanese Support" yum -y install nkf yum -y install nmap yum -y install tree コンパル関連とかで使う。 yum -y install gcc libgcc yum -y install zlib-dev...
2017.5.27 土
保守もしてない中に入ったこともないサーバーの作業って嫌です。正直こういう仕事しちゃいけないと思いますよ。ほんと。これどういうことかというと地図なしで戦地に赴くようなものです。 謎のプロセスで5672ポートを使っているので閉じてくれというだけの話なんですが、気味悪いですね。 lsofのインストール 便利なツールが何もないな。 yum -y install lsof ポート確認 # lsof -i:5672 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME qpidd 1259 qpidd 10u IPv4 8816 0t0 TCP *:amqp (LISTEN) 正直仕事であんま使わないです。 qpidd: 異なるプラットフォーム間、異なるア...
2017.4.5 水
サーバーのCPU情報は、/proc/cpuinfoで確認できます。だいたいの目安で数値自体はかなりいい加減らしいです。その上、何を書いているのかよくわかりません。見るところ3箇所程度。 #cat /proc/cpuinfoとか#vi /proc/cpuinfoとかで見ます。 項目 内容 processor 0 vendor_id GenuineIntel cpu family 6 model 44 model name Intel(R) Xeon(R) CPU X5650 @ 2.67GHz stepping 2 cpu MHz 2666.848 cache size 12288 KB physical id 1 siblings 12 core id 0 cpu cores 6 apici...
2017.3.31 金
/etc/profileにショートカットを追加しておく llでリスト表示させるようにしておきます。 vi /etc/profile .... # some more ls aliases alias ll='ls -al' alias la='ls -A' alias l='ls -CF' 追記が気持ち悪い人は、/etc/profile.dでもいい。 cd /etc/profile.d touch bash_alias.sh vi # some more ls aliases alias ll='ls -al' alias la='ls -A' alias l='ls -CF' :wq
2017.3.26 日
Linuxは進化しすぎていろいろな設定方法がありすぎて気持ちが悪いのでここではシンプルな方法のみ。 コマンドプロンプトのホスト名を変更 hostnameファイルで変更 コマンドプロンプトのホスト名を変更 vi /etc/sysconfig/network .... HOSTNAME=centos7.example.com .... たぶん再起動しないとダメ。 hostnameファイルで変更 vi /etc/hostname .... 127.0.0.1 centos7.example.com .... .bashrcで変更 サーバー全体に反映させるんだったら、/etc/profileを変更した方がいいかもです。個別に設定するのだったら.bashrcか.bash_profileに設定するのがよ...
2017.3.26 日
CentOS7 インストール後の初期設定 CentOS7の便利な設定をしておく CentOS7 ホスト名の設定(変更)方法 SSHの設定 無料SSLを取得する Let’s Encrypt
2016.11.7 月
php.iniで設定する PHPのアップロードサイズは、php.iniの設定を見るとデフォルトでは、 ; Maximum allowed size for uploaded files. ; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize upload_max_filesize = 2M となっていて2Mなんですね。php.iniの877行目辺りです。 普通に画像とかファイルとかをあげるにはまあまあなサイズですが、用途によっては全然足りないです。なので、ここでアップロードサイズを大きくしてあげます。 Ubunutuとかだと、/etc/php5/apache2/php.iniで、CentOSとかだと/etc/p...
2016.11.7 月
php.iniが訳あって直接書き込むことができない場合は、.htaccessに書く方法があります。しかし大元の本物php.ini内で、 php_value = On php_flag = On という風に設定する必要があります。これができないと.htaccessに設定しても無効になってしまいます。phpinfo()でも確認できるので、大元のphp.iniの設定を確認してみてください。レンタルサーバーによってはこの機能が使えるようになっているところもあります。ロリポだと大元のphp.iniもある程度GUIで設定可能です。 しかしこの設定で可能な範囲はlocal valueだけでMaster valueは大元のphp.iniの設定が必須になります。アプリの開発によってはMaster valueの...
2016.10.31 月
Linux CPU情報確認 /proc/cpuinfo サーバーのCPU情報は、/proc/cpuinfoで確認できます。だいたいの目安で数値自体はかなりいい加減らしいです。その上、何を書いているのかよくわかりません。見るところ3箇所程度。 cat /proc/cpuinfo とか vi /proc/cpuinfo とかで見ます。 processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU X5650 @ 2.67GHz stepping : 2 cpu MHz : 2666.848 cache size : 12288 KB physical id : ...
2016.10.24 月
思わず溜めすぎてしまったログがgzで80MB近い容量になっていて展開したら2GBあった。のだけど、このファイルをいろいろ加工しないといけなくて、いろいろ触る度にコマンドラインでさえ5分ぐらい返ってこないということになってしまったので、その時の作業のメモです。 # split -l 10000 sample.log とやったら、676ファイルに分割されてさらに出力できないというエラーが出た。いったい何行あるんだということで、仕方なく1GBで分割してみた。 # split -b 1000m sample.log -rw-r--r-- 1 root root 1048576000 Oct 31 18:59 xaa -rw-r--r-- 1 root root 1048576000 Oct 31 1...