Skip to content

Instantly share code, notes, and snippets.

@CLCL
CLCL / Adafruit_CharLCDPlate_01.pl
Last active August 29, 2015 14:03
Adafruit CharLCDPlateのPythonサンプルをPerl(HiPi)に書き直したとりあえず最低限
#!/usr/bin/env perl
# Raspberry Pi用Adafruit RGB-backlit LCD plateのPythonライブラリ
# https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/blob/e28539734dfbd6965395f0f0478ecad44ca0eaea/Adafruit_CharLCDPlate/Adafruit_CharLCDPlate.py
# から文字の表示とバックライトの変更の部分だけ最低限移植
# Perl用I2C/SMBusアクセスライブラリHiPiを使用
# http://raspberry.znix.com/p/install.html
#
# This is essentially a complete rewrite, but the calling syntax
# and constants are based on code from lrvick and LiquidCrystal.
@CLCL
CLCL / beta-raspi-MS100A.pl
Last active August 29, 2015 14:02
Raspberry Pi直結型 LED/ボタン/ブザーアドオンボード MS100A(BerryClip)用Perlアクセスサンプル
#!/usr/bin/env perl
# Raspberry Pi直結型 LED/ボタン/ブザーアドオンボード
# MS100A用Perlアクセスサンプル
# CPANのDevice::BCM2835 が必要で、それをインストールする
# には http://www.airspayce.com/mikem/bcm2835/ から
# bcm2835-1.xx.tar.gz をダウンロードしてビルドする必要が
# あるよ。これを実行するときはroot権限が必要だよ。
# Raspbian にplenv+cpanm+cartonでPerl 5.20.0入れた環境で
# テストしたよ。
#/usr/env perl
# サイボウズガルーンのDBに潜って書き込みの時間帯の分布をみるよ。
# メンテナンス時間決めるときに書き込み少なさそうな時間を選んだりするのに使おう。
use strict;
use warnings;
use DBI;
use DateTime;
my $password = 'xxxxxxxx';
@CLCL
CLCL / jenkins-styles.css
Last active March 22, 2016 02:54
JenkinsのSimple Theme Plugin用CSS。リンクのアンダーラインを消したり、Windowsでフォント指定をメイリオにしたりする。Jenkinsに設定するときは、(昔は、MIME Typeを反映するよう、RawGitHubを通して、https://rawgithub.com/CLCL/8473984/raw/jenkins-styles.css のように指定する。だったが、RawGiitHubがホットリンクを明確に禁止したので、自前の領域に入れてください)
/* JenkinsのCSS設定を変更 */
@import url('http://fonts.googleapis.com/css?family=Inconsolata');
/* フォントに Meiryoを使う */
body, table, form, input, td, th, p, textarea, select {
font-family: Verdana, Meiryo, Helvetica, sans serif;
/* JenkinsのCSSでp要素は 11px に指定されている */
}
@CLCL
CLCL / bom_check.sh
Last active January 2, 2016 16:29
bom_check.sh PHPとかHTMLにBOM付きUTF-8があるかどうか探す あったらリスト表示して終了コード255 無かったら何も表示せず終了コード0
#!/bin/bash
##########################################################
#
# bom_check.sh : BOM付きファイルを検索してレポート
# findでbash依存の記述($'\xef\xbb\xbf')をしているので、bashでないと動かない
#
##########################################################
CMDNAME=`basename $0`
@CLCL
CLCL / limit_outgoing_packets(iptables).md
Last active December 31, 2015 17:09
iptablesで150kbps/sの帯域制御(トラフィックシェーピング)回線をエミュレート

サーバ側で外行きのパケットにiptablesでlimitつけてあげれば、細い回線のマネができる。 たとえばブラウザのプロキシをSquid:3128でつなげている場合、Squidがあるサーバで以下の通り。

iptables -I OUTPUT -p tcp -m tcp --sport 3128 -j REJECT
iptables -I OUTPUT -p tcp -m tcp --sport 3128 -m limit --limit 13/s --limit-burst 13 -j ACCEPT

OUTPUTチェーンに「-I」で挿入しているということはチェーンの頭に追加しているということなので、実質的には↑のコマンドで挿入されるルールは、OUTPUTチェーンのリスト内では順番が逆になっていることに注意。先にlimit付きの条件成立すればACCEPT(外に行ってよし)、成立しなければREJECTされる。

これで、13(通過できるパケット数/sec)×1500(MTU、単位はbyte)=19500(bytes/sec)=152.3kbps の回線がエミュレートできて、MVNO SIMであったり、JPEGがじわじわ表示される昔のインターネット体験ができるのだけれども、そこで「昔のインターネットはみんなこうだったんだ」とか言ってしまうとおっさん認定されるので要注意だ。

@CLCL
CLCL / ip2geo.pl
Created July 25, 2013 06:34
Apacheログとかで国特定したいときに使う/root/bin/ip2geo.pl。 GeoIPを調べるgeoiplookupコマンド(CentOS 6だったらEPELから入る)があることが前提。 パイプして使おう。
#!/usr/bin/perl
# CentOS 6: yum --enablerepo=epel install geoip
# GeoIPのデータベース更新は自分で設置すること!
use strict;
use warnings;
my $dic = {
};
@CLCL
CLCL / centos6_mod_geoip.md
Last active September 8, 2016 22:34
CentOS 6で稼働しているdtpwiki.jpのWikiサイトに外国からのスパム書き込みが激しいので、GeoIPというIPアドレスから国を判別するApacheモジュールをインストールして、対応した。なお、mod_security使うと書き込み内容でBANすることができるのですが、あれけっこう設定がパラノイアなので、導入時にしっかりテストをする必要があるかな。

CentOS 6のApacheで外国のspamロボットのアクセスを制限する

すべて root で作業しています。

GeoIPとmod_geoipのインストール

GeoIP関連パッケージはEPELにありますので、あらかじめEPELの設定をしたうえで、

# yum --enablerepo=epel install GeoIP mod_geoip
@CLCL
CLCL / adobeMMdel.pl
Last active December 18, 2015 15:19
Adobe MAGIC MASTER( https://magic-master.jp/pc/index.html ) のTwitter連動で自動的に投稿されてしまったうざいメッセージを即座に消します。自分のアカウントで作ったTwitterアプリのConsumer Key、Access Tokenなどなどが必要。
#!/usr/bin/perl
use version; our $VERSION = qv('0.0.1');
use AnyEvent::Twitter::Stream;
use FindBin;
use File::Spec;
use Net::Twitter;
use utf8;
use YAML;
binmode STDOUT => ':utf8';
@CLCL
CLCL / CentOS6-L2TP-IPsec.md
Last active September 26, 2022 18:21
L2TP/IPsec(AndroidやiPhoneからのVPN接続)を経路を用意すべくVPSにL2TP/IPsecサーバを設置するとき、ネットにある情報だとなかなかつながらないから、標準環境としてAWSのCentOS 6.3 x86_64 Release Media(ami-3fe8603e)の起動直後から最短距離で設定する方法をまとめた。

CentOS 6でとにかくL2TP/IPsecサーバ

  • AWSでEC2のインスタンスを借りる
  • 今回は東京リージョンのCentOS 6.3 x86_64 Release MediaのAIM(ami-3fe8603e)でインスタンスを建てる
  • Security Group: L2TP/IPsec(Inbound 22/TCP: SSH, 500/UDP: ISAKMP, 1701/UDP: L2TP, 4500/UDP: IPSec NAT Traversal)を許可
  • ec2-54-249-173-214.ap-northeast-1.compute.amazonaws.com(グローバルIPアドレス:54.249.173.214)にrootでログイン

SELinuxを無効にする

[root@ip-10-132-164-105 ~]# setenforce 0