Attention! Translated article might be found on my English blog.
ラベル server の投稿を表示しています。 すべての投稿を表示
ラベル server の投稿を表示しています。 すべての投稿を表示

2018年1月12日金曜日

アクセスログからユニークIPの抽出とカウント

# cat /path/to/access_log | cut -d ' ' -f 1 | sort | uniq -c

・cutでスペース区切った1列目のみ抽出する。
・sortで同じIPが連続するようにソート(これが無いとuniqで同一だが不連続なIPが別物として扱われてしまう)
・uniqでカウント数を付加して出力

2018年1月10日水曜日

CentOS 6にNode.jsをインストールする

Node.jsをインストールする:
# curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
# yum install -y nodejs
参考: Installing Node.js via package manager | Node.js

コマンドラインから動作を確認する:

test.js:
var sys = require("sys");
sys.puts("Hello World");

# node test.js 
Hello World
(node:22537) [DEP0025] DeprecationWarning: sys is deprecated. Use util instead.
(node:22537) [DEP0027] DeprecationWarning: util.puts is deprecated. Use console.log instead. 
なお、warningはstderrの方に出ててとりあえず無視しました。

参考: Beginner's Guide to Node.js (Server-side JavaScript) - Hongkiat

CoffeeScriptをインストールする:
# npm install --global coffeescript
参考: CoffeeScript


2017年7月14日金曜日

Macのエクセルの表をJSONにする

1: エクセルの表を部分選択してコピー
2: CSV to JSON - CSVJSONを開き、左のエリアにペースト
3: ">"ボタンを押下し、右のエリアに出てきた変換結果をコピー
4: TextEditで新規書類を作りペーストしてセーブ

2017年6月28日水曜日

ふたばのスレ(画像込み)をwgetで保存する

以前作ったスクリプトからサルベージしてきた。
現在の(あちら側の)仕様で使えるのかは不明。
完全にローカルで見るにはbaseかなんかの修正が必要だったかも。

$cmd = 'wget -e robots=off --recursive -k --level=1 --follow-tags=img,a --reject=php,cgi --accept=jpg,gif,png,htm,html -H -D2chan.net -P ' . $conf[ 'data' ][ 'threads' ] . '/' . $l[ 'id' ] . ' ' . $l[ 'thread_url' ] . ' > ' . $logdir . ' 2> ' . $logdir;

オプションの意味は覚えてません。

2017年4月25日火曜日

bbpressでフォーラム表示ができなかった

ブラウザで見ようとしても何も表示されず。
どうやらInternal Server Error 500が出ている模様。

apacheのエラーログを見たところ、
 PHP Fatal error:  Class 'DOMDocument' not found in /home/wpadminwp/wp/wordpress/wp-content/plugins/jetpack/modules/shortcodes/class.filter-embedded-html-objects.php on line 246
というエラーが出ていました。

ググったところ、yumでphp-xmlを入れてapacheをリロードすることで表示できるようになりました。

参考: 【解決方法】 Fatal error: Class ‘DOMDocument’ not found |UI/UXデザイン アプリ/サービス開発 | UI/UXデザインのアジケ ajike

ただ表示はできるようになったものの、今度は
Call to undefined function pll_get_post_language() in /home/wpadminwp/wp/wordpress/wp-content/plugins/polylang/modules/plugins/plugins-compat.php on line 618
ていうエラーが出るようになってしまった。。。
問題があるようならまた今度調べる予定。

2017年4月22日土曜日

FollowSymLinksが有効でも403になる時

今回はホームディレクトリのパーミッションが原因でした!

参考: ApacheでSymlink先にアクセスしたけど403が返ってくるときに確認したい3つの設定 - mnemoniq

/var/www/html内に/home/hoge/fugaのシンボリックリンクを作った際には、
/home/hogeのパーミッションを変更しておきましょう。

2016年9月3日土曜日

CentOS 7.2で起動時にコンソールのキーマップをUSにする

/etc/vconsole.confを編集し、KEYMAP="jp"をKEYMAP="us"に変更する。
なお、一時的に変更したい場合はloadkeys usというコマンドを実行すれば良い。

参考: Remapping Caps Lock to Control key in CentOS 7

フォントも変えられるようなので他にもいろいろ試してみようかなと思ったり。

VMWare FusionでゲストのCentOS 7.2の画面サイズを変更したかった

普段ssh経由で触るので、正直ウインドウって邪魔なんですよね…。
それなのにウインドウはでかいし、文字は小さいし…。

とりあえずウインドウサイズを小さくするようにしてみました。
CentOS - Chaperoneを参考に
# vim /etc/default/grub 
でGRUB_CMDLINE_LINUXの末尾にvga=771を追加後、
# grub2-mkconfig -o /boot/grub2/grub.cfg
# reboot
とすると、何度かウインドウサイズが変化するものの、
最終的にはある程度小さくなりました。これ以下には変えられないっぽいですね。

なお、(ホスト側から)手動でウインドウを小さくすると文字も小さくなってしまうので、
フォントサイズを変えられないかと思って調べたんですが、
いまいちそれっぽい記事を見つけられなかったので保留中です。
stty辺りの話だとは思うんですが、ひとまず今後の課題としておきます。

CentOS 7.2でiptablesを設定した際のメモ

あくまで自分用メモなのでご注意ください。

中国・韓国・香港・マカオ・北朝鮮からの接続を拒否するため、
中国・韓国のIPアドレスとの通信を遮断からスクリプトをダウンロードした。
また、事前の設定はテンプレート13(行番号付き)を参考にした。
なお、今回はひとまずhttp, httpsだけフィルタできれば良いので(他のポートはwifiルータで拒否っているので)
iptablesで、httpとhttpsの接続を許可する設定 - 作業ノートを参考に80, 443だけ上記の接続を拒否するようにした。

最終的には以下のコマンドで設定した。
# iptables -I INPUT 1 -p tcp -m tcp --dport 80 -j CNKR
# iptables -I INPUT 2 -p tcp -m tcp --dport 443 -j CNKR
# iptables -N LOGGING
# iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
# iptables -A LOGGING -j DROP
# ./iptables_cnkr.sh
ログ設定は後日見直す予定。

--

これまでの変更を全て破棄するには、
# iptables -F
とする。
参考: linux - Undo iptables modification - Unix & Linux Stack Exchange

--

なお、service iptables saveするにはそもそも
# yum install iptables-services
# systemctl enable iptables
としてserviceを有効化してやる必要がある。
参考: Centos 7 save iptables settings - Server Fault


2016年8月25日木曜日

rpmforgeを使わずCentOS 7.2にyumでffmpegを入れる

どうやらCentOSではrpmforgeからffmpegをインストールするのがメジャーな模様。
ということで、CentOS7へのリポジトリの追加方法まとめ - プログラミングとかLinuxとかの備忘録を参考に追加しようとしたところ、GPGキーの取得で
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
curl: (22) The requested URL returned error: 404 Not Found
エラー: http://apt.sw.be/RPM-GPG-KEY.dag.txt: インポート読み込みに失敗しました(2)。
とエラーが出て取得できませんでした。
AdditionalResources/Repositories/RPMForge - CentOS Wikiにはdead projectと書かれており、もう使えないということかな?
というわけで、CentOS7にyumでffmpegをインストール - プログラミングとかLinuxとかの備忘録を参考に、epelとnux-dextopからインストールすることにしました。

nux-dextopは上記のリポジトリ追加方法まとめの記事より
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
として追加しました。で、
# yum -y --enablerepo=epel,nux-dextop install ffmpeg
で無事インストール完了!


CentOS 7.2にyumでinotifyを入れる

CentOS7.1 64bitのyumリポジトリにEPELを追加 | kakiro-web カキローウェブを参考にepelを使えるようにします。
# yum install -y epel-release
デフォルトではepelを使われないようにします。
# vim /etc/yum.repos.d/epel.repo
でepelのenabledを0に設定しファイル更新。
inotify-toolsをyumでインストールします。
# yum install --enablerepo=epel -y inotify-tools
インストールを確認。
# which inotifywait
/bin/inotifywait
使用法はおいおい調べたいと思います。

Cent OS 7.2 でsambaマウントする

KENMARI-PC » CentOSでファイルサーバ(samba)の共有ディレクトリをマウントするの手順を参考にマウントするようにしました。ただし、
# mount -t cifs -o guest //ip.to.samba.server/public /mnt/samba
とするとエラーになってマウントできませんでした。(エラー内容は失念)

Mounting SMB Shares on CentOS 7 - Serverlabを参考に
# yum install -y cifs-utils
として
# mount.cifs -o guest //ip.to.samba.server/public /mnt/samba
としたところ、無事マウントすることができました。

なお、cifs-utilsを入れてしまえばmount.cifsではなくmountだけでも良いみたいです。

2016年8月24日水曜日

RPiにsambaを入れた

Raspberry Piでファイルサーバ、Part1 Samba基本編 | ものづくりエクスペリメントの手順を参考にインストロールしました。
ただし、sambaを再起動しようとしたところ、
$ sudo service samba restart
Failed to restart samba.service: Unit samba.service is masked.
てなエラーで再起動できませんでした。
Unit samba.service is masked のエラー : プログラマー社長の「日々発見」を参考に
$ sudo service smbd restart; sudo service nmbd restart
と別々に行うことで再起動できました。

ちなみに、自分はwifi経由で接続しているのでsmb.confのinterfacesは
interfaces = 192.168.11. 127.0.0.0/8 wlan0
としました。

2016年8月23日火曜日

ディレクトリ内に新しく追加されたファイルを表示する

A級プログラマーへの道 【Linux】ディレクトリ内の状態を監視する便利なコマンドによると
$ watch 'ls -lrt | tail -20'
てな感じでコマンドを実行すると、一定間隔(デフォルトは2秒だそう)毎にディレクトリ内の最新ファイルを20件表示してくれます。
恥ずかしながらwatchというコマンドを初めて知りました…。

ちなみに、自分の場合はmotionで新しく生成した動画ファイルを表示させたかったので
$ watch 'ls -lrth /tmp/motion/*.avi | tail -5'
として運用しています。

2016年8月22日月曜日

gitリポジトリ移動メモ

ローカルにしかないgitレポジトリを自鯖に移動させた際の作業メモです。
自分の環境ようなので一般的な方法ではないかもです。

$ scp repo server:/path/to/git/repos/
$ cd repo
$ vim repo/.git/config
以下の行を追加
[remote "origin"]
    url = ssh://server:/path/to/git/repos/repo
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
$ git pull

VMWare Fusion上のCentOS 7.2のディスク容量を拡張する

こちらのホストはMac OS Xでしたが、基本的にはVMwareのゲストOS(CentOS6.4)のディスク容量を増やす方法 « Jラボの手順を真似することで行けました。
ただし、当環境では最後のコマンドresize2fsで失敗してしまいました。
# resize2fs -f /dev/mapper/centos-root 
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root
Couldn't find valid filesystem superblock.
CentOS 7(XFS)でLVMディスク拡張でハマったこと - Qiitaによると、CentOS 7のデフォルトファイルシステムXFSではresize2fsは使えないようです。
上記記事に従い、
# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=260096 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1040384, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1040384 to 2360320
としたところ、無事rootのディスク容量を拡張できました。 

2016年8月8日月曜日

WorkPressにphpで自動投稿する

こちらのサンプルがそのまま使えて良い感じでした。
参考: WordPressへXML-RPCとPHPで外部投稿(基本編) – 猫力

必要なライブラリも1ファイルで済んで良い感じです。
The Incutio XML-RPC Library for PHP

なお、xmlrpc.phpをターゲットにした攻撃があるようです。
.htaccessなどでローカルホストからのみアクセス許可しておくと良いかもしれません。
.htaccessの書き方については特定のファイルだけ守る - .htaccessの小技編 - futomi's CGI Cafeが参考になります。

その他、セキュリティ対策についてはWordPressのセキュリティ対策 xmlrpc.phpとwp-cron.phpの無効化 | モバイル・スマホ対策のSEO塾.comが分かりやすいです。

CentOS 7にWordPressをインストールしたメモ

日本語版公式サイトからlatestをダウンロードし、
WordPress のインストール - WordPress Codex 日本語版を参考にインストールしました。

CentOS 7ではmysqlの代わりにmariaDBなるものが入っているらしく、まずそれの初期設定をしました。
参考: CentOS 7 : MariaDB インストール、及び初期設定 - eTuts+ Server Tutorial

DB設定とwp-config.php設定終了後、ブラウザからアクセスしてみると、
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
と表示されて先に進めませんでした。

一度mysqlを入れたり削除したりしたのが行けなかったのかも…。

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。 | most worksを参考に、

  1. php-mysqlのインストール
  2. php.iniにextension=mysql.soの追加
  3. httpdのリスタート
を試したところうまくいきました。

Google Analytics用のスクリプトはテキスト/HTMLのウィジェットを追加するという形で貼り付けてみました。
(動作未確認)

2016年8月7日日曜日

psqlメモ

psql
DB一覧
\l
参考: PostgreSQL・Tips集

各DBの実データサイズ
select datid,datname from pg_stat_database;
でoid(datid)取得後、
$ du -ch /path/to/db
ちなみに当環境(CentOS 7.2, PostgreSQL 9.2.15)では/var/lib/pgsql/data/base/でした。
参考: DBの実データサイズを調べる(PostgreSQL編) | データベース | DoRuby

2016年7月25日月曜日

RedmineとGitレポジトリを連携させる

単に作業用レポジトリのパスを設定しただけでは上手くいきませんでした。
当方のサーバはCentOS 7ですが、Redmine と Git の連携設定 | EasyRamble の通りにしたらほぼOKでした。
(違いはsudoではなくsu -したくらい)