Archive for 6月, 2009

python:リストの内包表現

リストが持つデータに着目して新たなリストを作り出す書き方 [sourcecode language="python"] memberList = [{'id': 1 ,'name': 'Jhon' ,'sex': 1 },{'id': 1 ,'name': 'Mary' ,'sex': 2 }] [/sourcecode] このようなリストから性別=1のリストの’name’だけを抜き出したいときはこう書く [sourcecode language="python"] newMemberList = [lst['name'] for lst in memberList if lst['sex'] == 1] [/sourcecode]

Linux:rsyncでファイル同期

まずrsyncコマンドの基本 rsync [option] [同期元ファイルパス] [同期先ファイルパス] リモートサーバと同期するときはファイルパスの前に:で区切ってサーバ名またはIPアドレスを指定する rsync [option] user@192.168.0.2:/tmp /tmp ※この例ではuserアカウントで192.168.0.2にアクセスしようとしているので、目的のサーバに接続した後、パスワードを聞かれる。 パスワードを答えると同期が行われる。 cron等で定期的に同期したい場合、このパスワード入力が面倒。 リモートのrsyncサーバにユーザを登録していれば–password-fileというオプションをつけてコマンドラインにパスワードを含めることができる。 rsyncサーバの設定 rsyncの設定ファイルを作成しする。 設定ファイルにはリモートでアクセスできる接続元や、ディレクトリ、ユーザの設定を書く。 /etc/rsync.conf # # Global options # uid = root gid = root use chroot = yes log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid hosts allow = 192.168.0.1/24 hosts deny = * dont compress = *.gz *.tgz *.zip [...]

mysql:DATETIME型とTIMESTAMP型

DATETIME型は8バイト、TIMESTAMP型は4バイト。 サポートする日付の範囲は DATETIME: 0000年~9999年 TIMESTAMP: 1970年~2037年 4バイトくらいケチらずにDATETIME型を使うのが基本か。 TIMESTAMP型で更新日時など内部データを持つのはアリかもしれない。 けど、生年月日のようなデータ入れられない。 システムの中で何種類も日付型を使うのが面倒ならDATETIME型に統一したほうがいい。

mysql:リモートログインできるユーザの追加

mysqlにリモートログインできるユーザを追加するコマンド GRANT ALL PRIVILEGES ON DBNAME.* TO username@”%” IDENTIFIED BY ‘password’ WITH GRANT OPTION; FLUSH PRIVILEGES; “%”のところにIPアドレスを指定してアクセスできる接続元IPを指定することができる。 “%”なら何処からでも接続可になる。