Linux

Python入門者向けハンズオン #pynyumon にメンターとして参加してきました

Python入門者向けハンズオンにメンター枠で参加してきました。 python-nyumon.connpass.com 会場 Retty株式会社のオフィスが会場でした。綺麗で広くてよかったです。 メンターをやってみた雑感 個人的には、Djangoの初心者向けハンズオンをそのうちやろうと…

devproxyをWebアプリケーション開発で使う

devproxyというのを開発時に使っているのですが、便利なので紹介します。 GitHub - moriyoshi/devproxy: A swiss army knife of forward HTTP proxies devproxyは、Webアプリケーション開発向けのHTTPフォワードプロキシです。次のような点で便利です。 /etc…

Pythonでファイルディスクリプタをサブプロセスに渡す

Pythonのsubprocessモジュールでサブプロセスを実行するときに、親プロセス側で開いたファイルのファイルディスクリプタを渡す方法。 subprocess.Popenのpass_fds引数を指定すると、指定したファイルディスクリプタは閉じられないようだ。 試したPythonのバ…

Xubuntuを14.04から16.04にアップグレードした

2010年のMacBookAir(メモリ2GB)にXubuntuをインストールして使ってるのだけど、14.04LTSのデスクトップ版から16.04にアップグレードした。 $ sudo apt update $ sudo do-release-upgrade -d Firefoxを起動しててもメモリ使用量は1GB以内ぐらいで収まってるの…

スレッドが終了するタイミングについて検証

Pythonでスレッドをしばらく使っていなくて、どういう動きするのだったか忘れてたので、検証したメモを残す。 試した環境は、Ubuntu 14.04、Python 3.5.1。 検証に使ったコード main.py: import threading import os import sys import time import signal d…

cgroupを使ってCPUとメモリの割り当てを制限する

cgroupを使ってCPUとメモリの割り当てを制限してみたけど、忘れてしまいそうなのでメモを残す。 試した環境はCentOS 6.4。 インストール CentOS6でcgroupを使うにはlibcgroupをインストール。 $ sudo yum install libcgroupcgconfigサービスを起動すると、/c…

XenServer上のUbuntuのディスク容量を拡張する

作業メモ。XenServer上で動かしてるUbuntuのディスク容量を増やしたい。 LVMを使っている状態で、オンラインで(再起動とか不要で)できた。 XenServer6.2、Ubuntu12.04。ファイルシステムはEXT4。 現状の確認 tokibito@ubuntu-base:~$ sudo su - root@ubuntu:…

Upstartを使う

最近、デーモンプロセスの管理にUpstartを使ってる。 PIDの管理をあんまり気にしなくてよかったり、イベント発火の仕組みでプロセス間の依存を解決できるのが楽。 簡単な使い方をメモしておく。 基本的な使い方 /etc/init/ に設定ファイルを設置する initctl…

Pythonでシンボリックリンクとハードリンクを作成する

PythonでLinux上にハードリンクとシンボリックリンクを作成する。 試したのはUbuntu12.04, Python2.7.3。 どちらもosモジュールの関数を使う。 ハードリンクの作成 ハードリンクはos.link関数で作成できる。 >>> import os >>> os.link('test.txt', 'foo') …

ハードリンクとシンボリックリンクを扱う

ハードリンクとシンボリックリンクについて忘れるのでまとめておく。 試した環境はUbuntu12.04。 text.txtというファイルを作成してある。中身は「Hello, world!」という文字列。 $ ls -l total 4 -rw-rw-r-- 1 tokibito tokibito 14 1月 11 11:57 test.txt …

SSHの秘密鍵のパスフレーズを変更する

毎回忘れてるのでメモ。 mykeyfileという名前の秘密鍵ファイルのパスフレーズを変更する場合。 ssh-keygenコマンドの"-f" オプションでファイルを指定、"-p" オプションでパスフレーズを変更する。 $ ssh-keygen -f mykeyfile -p Enter old passphrase: Key …

シェルスクリプトでサーバーを起動、停止する

Flaskとかで作ったちょっとしたサーバーの起動/停止用のシェルスクリプト。 gunicornでデーモン状態にしている。 startで起動、stopで終了、restartでstop+start。 #!/bin/sh PROGNAME=`basename $0` BASEDIR=`dirname $0` PIDFILE=$BASEDIR/$PROGNAME.pid s…

シェルからXvfbとskypeをバックグラウンドで起動する

メモ。 moriyoshiさんのSkype起動のスクリプトを参考に。コマンドからユーザ名とパスワードとディスプレイ番号を指定して起動できるようにスクリプトを作成。 Linux上で動くSkype用のbotを作る方法 - muddy brown thang launch_skype.sh #!/bin/bash USERNAM…

memcachedの状態を調べる

memcachedを富豪的に使ってたせいなのか、負荷が高い状態になっていたので調べてた。 telnetを使う場合 memcacheプロトコルを直接入力する方法。 $ telnet localhost 11211 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. stats ST…

GnuPGを使うメモ

公開鍵方式でファイルを暗号化する目的でソフトを探していて、GnuPGが割と良さそうだったので使ってみたメモ。 The GNU Privacy Guard コマンドラインからだとgpgコマンド。Linux/Unixで使えるのはもちろんのこと、Windows/Macなど主要なOSに対応している。 …

シェルスクリプトメモ

標準出力とエラー出力を/dev/nullへ echo hoge > /dev/null 2>&1 関数 hoge() { echo foo } 変数渡してバックグラウンド実行 FOO=bar sh -c 'echo $FOO > /dev/null 2>&1' & disown

chrootメモ

os.chrootの動作メモ。 chrootを実行できる権限で実行する。 test.py import os def main(): print os.path.abspath(__file__) os.chroot(os.path.dirname(os.path.abspath(__file__))) print os.path.abspath(__file__) if __name__ == '__main__': main() …

Ubuntu ServerにSkypeをインストールする

skypebotを作るに当たり、サーバでSkypeを動かしたいのでVM上のUbuntuServerにインストールする。 Ubuntuのバージョンは64bitの9.10。 必要なパッケージのインストール $ sudo aptitude install -y lib32stdc++6 lib32asound2 ia32-libs libc6-i386 lib32gcc…

Ubuntu ServerにxtermをインストールしてXmingから操作する

id:moriyoshi 先生がリモートのサーバのリソースを使って作業してるのを見て、うらやましかったので調べていろいろやったメモ。 ssh接続のために、OpenSSHなどが使えること前提に。 Ubuntu Serverは9.10。依存するパッケージはaptitudeにまかせる。 xtermの…

tmpfs

tmpfsを id:feiz に教えてもらった。メモリをファイルシステムとして扱えると。 tokibito@debian01:/mnt$ sudo mkdir tmp tokibito@debian01:/mnt$ sudo mount -t tmpfs -o size=200m /dev/shm /mnt/tmp tokibito@debian01:/mnt$ df -h Filesystem サイズ 使…

ssh/sshdのインストールと設定

いつも忘れるのでメモ。 インストール # apt-get install openssh-server キーの作成 $ ssh-keygen公開鍵はリモートの $HOME/.ssh/ に authorized_keys という名前のファイルを作成する。 ポートフォワード ssh -L local_port:bind_addr:remote_port user@re…

os.chrootとか

メモ。chroot試してみないとなーと思っててね。 (sandbox-django)tokibito@sandbox-ubuntu9:~/projects/chroottest$ ls -l 合計 8 -rw------- 1 root root 9 2009-09-03 01:43 data.dat -rw-r--r-- 1 tokibito tokibito 374 2009-09-03 01:47 tests.py (sand…

grepとcutとxargsで一括処理

メモ。Windowsばっかり使ってるから*nixコマンドはあんまり知らないのよ。 grepとcutとxargsは使う場面多いから覚えとかないと。 $ hg status|grep ^?|cut -d ' ' -f 2|xargs hg addこれでバージョン管理外のファイルすべてをhd addできる。

patchコマンドの-p

hg diffで出したパッチを取り込むときにどうすんだっけかなーと思って調べてた。 Windowsばっかり使ってるからpatchコマンドにあまり縁がない。 patchコマンドの-pオプションを使うと、指定した階層分だけディレクトリを無視できるようだ。 -p1なら1階層、-p…

zshを使ってみようかと

zshを使ってみようかと。 とりあえずUbuntuなので"apt-get install zsh"でインストールはok。 プロンプトを"user@hostname:dir$"な感じにしたかったので、ググりながら.zshrcを書いた。 ついでにlsコマンドの結果を色付きにしといた。 ~/.zshrc PROMPT='%n@%…

DiskInternals Linux Reader 1.0

おお、これは良いかも。フリーだし。 http://www.diskinternals.com/linux-reader/