「rsync」を含む日記 RSS

はてなキーワード: rsyncとは

2018-05-30

anond:20180529111525

rsyncをcron経由で動かして毎日定時ミラーリング。間違って削除した時に復活させにくくなるのでRAID1はあえて使ってない。

2016-02-17

SSHD for Windows を使ってみた

SSHD for Windows とは

Windows サーバsshサーバを立てる時に使います

結果

Macからrsyncしようとすると、謎のエラーが発生。

SSH接続はできるんだけどな。

これ、使いもんにならんわ。

2016-01-14

北朝鮮公式

かなりオープンサイトだ。

nmap www.korea-dpr.com

Starting Nmap 6.47 ( http://nmap.org ) at 2016-01-14 21:20 JST
Stats: 0:00:00 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan
Connect Scan Timing: About 0.55% done
Nmap scan report for www.korea-dpr.com (87.98.231.40)
Host is up (0.28s latency).
rDNS record for 87.98.231.40: cluster011.ovh.net
PORT      STATE    SERVICE
1/tcp     open     tcpmux
3/tcp     open     compressnet
4/tcp     open     unknown
6/tcp     open     unknown
7/tcp     open     echo
9/tcp     open     discard
13/tcp    open     daytime
17/tcp    open     qotd
19/tcp    open     chargen
20/tcp    open     ftp-data
21/tcp    open     ftp
22/tcp    open     ssh
23/tcp    open     telnet
24/tcp    open     priv-mail
25/tcp    closed   smtp
26/tcp    open     rsftp
30/tcp    open     unknown
32/tcp    open     unknown
33/tcp    open     dsp
37/tcp    open     time
42/tcp    open     nameserver
43/tcp    open     whois
49/tcp    open     tacacs
53/tcp    open     domain
70/tcp    open     gopher
79/tcp    open     finger
80/tcp    open     http
81/tcp    open     hosts2-ns
82/tcp    open     xfer
83/tcp    open     mit-ml-dev
84/tcp    open     ctf
85/tcp    open     mit-ml-dev
88/tcp    open     kerberos-sec
89/tcp    open     su-mit-tg
90/tcp    open     dnsix
99/tcp    open     metagram
100/tcp   open     newacct
106/tcp   open     pop3pw
109/tcp   open     pop2
110/tcp   open     pop3
111/tcp   open     rpcbind
113/tcp   open     ident
119/tcp   open     nntp
125/tcp   open     locus-map
135/tcp   open     msrpc
139/tcp   filtered netbios-ssn
143/tcp   open     imap
144/tcp   open     news
146/tcp   open     iso-tp0
161/tcp   open     snmp
163/tcp   open     cmip-man
179/tcp   open     bgp
199/tcp   open     smux
211/tcp   open     914c-g
212/tcp   open     anet
222/tcp   open     rsh-spx
254/tcp   open     unknown
255/tcp   open     unknown
256/tcp   open     fw1-secureremote
259/tcp   open     esro-gen
264/tcp   open     bgmp
280/tcp   open     http-mgmt
301/tcp   open     unknown
306/tcp   open     unknown
311/tcp   open     asip-webadmin
340/tcp   open     unknown
366/tcp   open     odmr
389/tcp   open     ldap
406/tcp   open     imsp
407/tcp   open     timbuktu
416/tcp   open     silverplatter
417/tcp   open     onmux
425/tcp   open     icad-el
427/tcp   open     svrloc
443/tcp   open     https
444/tcp   open     snpp
445/tcp   filtered microsoft-ds
458/tcp   open     appleqtc
464/tcp   open     kpasswd5
465/tcp   open     smtps
481/tcp   open     dvs
497/tcp   open     retrospect
500/tcp   open     isakmp
512/tcp   open     exec
513/tcp   open     login
514/tcp   open     shell
515/tcp   open     printer
524/tcp   open     ncp
541/tcp   open     uucp-rlogin
543/tcp   open     klogin
544/tcp   open     kshell
545/tcp   open     ekshell
548/tcp   open     afp
554/tcp   open     rtsp
555/tcp   open     dsf
563/tcp   open     snews
587/tcp   open     submission
593/tcp   open     http-rpc-epmap
616/tcp   open     sco-sysmgr
617/tcp   open     sco-dtmgr
625/tcp   open     apple-xsrvr-admin
631/tcp   open     ipp
636/tcp   open     ldapssl
646/tcp   open     ldp
648/tcp   open     rrp
666/tcp   open     doom
667/tcp   open     disclose
668/tcp   open     mecomm
683/tcp   open     corba-iiop
687/tcp   open     asipregistry
691/tcp   open     resvc
700/tcp   open     epp
705/tcp   open     agentx
711/tcp   open     cisco-tdp
714/tcp   open     iris-xpcs
720/tcp   open     unknown
722/tcp   open     unknown
726/tcp   open     unknown
749/tcp   open     kerberos-adm
765/tcp   open     webster
777/tcp   open     multiling-http
783/tcp   open     spamassassin
787/tcp   open     qsc
800/tcp   open     mdbs_daemon
801/tcp   open     device
808/tcp   open     ccproxy-http
843/tcp   open     unknown
873/tcp   open     rsync
880/tcp   open     unknown
888/tcp   open     accessbuilder
898/tcp   open     sun-manageconsole
900/tcp   open     omginitialrefs
901/tcp   open     samba-swat
902/tcp   open     iss-realsecure
903/tcp   open     iss-console-mgr
911/tcp   open     xact-backup
912/tcp   open     apex-mesh
981/tcp   open     unknown
987/tcp   open     unknown
990/tcp   open     ftps
992/tcp   open     telnets
993/tcp   open     imaps
995/tcp   open     pop3s
999/tcp   open     garcon
1000/tcp  open     cadlock
1001/tcp  open     unknown
1002/tcp  open     windows-icfw
1007/tcp  open     unknown
1009/tcp  open     unknown
1010/tcp  open     surf
1011/tcp  open     unknown
1021/tcp  open     exp1
1022/tcp  open     exp2
1023/tcp  open     netvenuechat
1024/tcp  open     kdm
1025/tcp  open     NFS-or-IIS
1026/tcp  open     LSA-or-nterm
1027/tcp  open     IIS
1028/tcp  open     unknown
1029/tcp  open     ms-lsa
1030/tcp  open     iad1
1031/tcp  open     iad2
1032/tcp  open     iad3
1033/tcp  open     netinfo
1034/tcp  open     zincite-a
1035/tcp  open     multidropper
1036/tcp  open     nsstp
1037/tcp  open     ams
1038/tcp  open     mtqp
1039/tcp  open     sbl
1040/tcp  open     netsaint
1041/tcp  open     danf-ak2
1042/tcp  open     afrog
1043/tcp  open     boinc
1044/tcp  open     dcutility
1045/tcp  open     fpitp
1046/tcp  open     wfremotertm
1047/tcp  open     neod1
1048/tcp  open     neod2
1049/tcp  open     td-postman
1050/tcp  open     java-or-OTGfileshare
1051/tcp  open     optima-vnet
1052/tcp  open     ddt
1053/tcp  open     remote-as
1054/tcp  open     brvread
1055/tcp  open     ansyslmd
1056/tcp  open     vfo
1057/tcp  open     startron
1058/tcp  open     nim
1059/tcp  open     nimreg
1060/tcp  open     polestar
1061/tcp  open     kiosk
1062/tcp  open     veracity
1063/tcp  open     kyoceranetdev
1064/tcp  open     jstel
1065/tcp  open     syscomlan
1066/tcp  open     fpo-fns
1067/tcp  open     instl_boots
1068/tcp  open     instl_bootc
1069/tcp  open     cognex-insight
1070/tcp  open     gmrupdateserv
1071/tcp  open     bsquare-voip
1072/tcp  open     cardax
1073/tcp  open     bridgecontrol
1074/tcp  open     warmspotMgmt
1075/tcp  open     rdrmshc
1076/tcp  open     sns_credit
1077/tcp  open     imgames
1078/tcp  open     avocent-proxy
1079/tcp  open     asprovatalk
1080/tcp  open     socks
1081/tcp  open     pvuniwien
1082/tcp  open     amt-esd-prot
1083/tcp  open     ansoft-lm-1
1084/tcp  open     ansoft-lm-2
1085/tcp  open     webobjects
1086/tcp  open     cplscrambler-lg
1087/tcp  open     cplscrambler-in
1088/tcp  open     cplscrambler-al
1089/tcp  open     ff-annunc
1090/tcp  open     ff-fms
1091/tcp  open     ff-sm
1092/tcp  open     obrpd
1093/tcp  open     proofd
1094/tcp  open     rootd
1095/tcp  open     nicelink
1096/tcp  open     cnrprotocol
1097/tcp  open     sunclustermgr
1098/tcp  open     rmiactivation
1099/tcp  open     rmiregistry
1100/tcp  open     mctp
1102/tcp  open     adobeserver-1
1104/tcp  open     xrl
1105/tcp  open     ftranhc
1106/tcp  open     isoipsigport-1
1107/tcp  open     isoipsigport-2
1108/tcp  open     ratio-adp
1110/tcp  open     nfsd-status
1111/tcp  open     lmsocialserver
1112/tcp  open     msql
1113/tcp  open     ltp-deepspace
1114/tcp  open     mini-sql
1117/tcp  open     ardus-mtrns
1119/tcp  open     bnetgame
1121/tcp  open     rmpp
1122/tcp  open     availant-mgr
1123/tcp  open     murray
1124/tcp  open     hpvmmcontrol
1126/tcp  open     hpvmmdata
1130/tcp  open     casp
1131/tcp  open     caspssl
1132/tcp  open     kvm-via-ip
1137/tcp  open     trim
1138/tcp  open     encrypted_admin
1141/tcp  open     mxomss
1145/tcp  open     x9-icue
1147/tcp  open     capioverlan
1148/tcp  open     elfiq-repl
1149/tcp  open     bvtsonar
1151/tcp  open     unizensus
1152/tcp  open     winpoplanmess
1154/tcp  open     resacommunity
1163/tcp  open     sddp
1164/tcp  open     qsm-proxy
1165/tcp  open     qsm-gui
1166/tcp  open     qsm-remote
1169/tcp  open     tripwire
1174/tcp  open     fnet-remote-ui
1175/tcp  open     dossier
1183/tcp  open     llsurfup-http
1185/tcp  open     catchpole
1186/tcp  open     mysql-cluster
1187/tcp  open     alias
1192/tcp  open     caids-sensor
1198/tcp  open     cajo-discovery
1199/tcp  open     dmidi
1201/tcp  open     nucleus-sand
1213/tcp  open     mpc-lifenet
1216/tcp  open     etebac5
1217/tcp  open     hpss-ndapi
1218/tcp  open     aeroflight-ads
1233/tcp  open     univ-appserver
1234/tcp  open     hotline
1236/tcp  open     bvcontrol
1244/tcp  open     isbconference1
1247/tcp  open     visionpyramid
1248/tcp  open     hermes
1259/tcp  open     opennl-voice
1271/tcp  open     excw
1272/tcp  open     cspmlockmgr
1277/tcp  open     miva-mqs
1287/tcp  open     routematch
1296/tcp  open     dproxy
1300/tcp  open     h323hostcallsc
1301/tcp  open     ci3-software-1
1309/tcp  open     jtag-server
1310/tcp  open     husky
1311/tcp  open     rxmon
1322/tcp  open     novation
1328/tcp  open     ewall
1334/tcp  open     writesrv
1352/tcp  open     lotusnotes
1417/tcp  open     timbuktu-srv1
1433/tcp  open     ms-sql-s
1434/tcp  open     ms-sql-m
1443/tcp  open     ies-lm
1455/tcp  open     esl-lm
1461/tcp  open     ibm_wrless_lan
1494/tcp  open     citrix-ica
1500/tcp  open     vlsi-lm
1501/tcp  open     sas-3
1503/tcp  open     imtc-mcs
1521/tcp  open     oracle
1524/tcp  open     ingreslock
1533/tcp  open     virtual-places
1556/tcp  open     veritas_pbx
1580/tcp  open     tn-tl-r1
1583/tcp  open     simbaexpress
1594/tcp  open     sixtrak
1600/tcp  open     issd
1641/tcp  open     invision
1658/tcp  open     sixnetudr
1666/tcp  open     netview-aix-6
1687/tcp  open     nsjtp-ctrl
1688/tcp  open     nsjtp-data
1700/tcp  open     mps-raft
1717/tcp  open     fj-hdnet
1718/tcp  open     h323gatedisc
1719/tcp  open     h323gatestat
1720/tcp  open     H.323/Q.931
1721/tcp  open     caicci
1723/tcp  open     pptp
1755/tcp  open     wms
1761/tcp  open     landesk-rc
1782/tcp  open     hp-hcip
1783/tcp  open     unknown
1801/tcp  open     msmq
1805/tcp  open     enl-name
1812/tcp  open     radius
1839/tcp  open     netopia-vo1
1840/tcp  open     netopia-vo2
1862/tcp  open     mysql-cm-agent
1863/tcp  open     msnp
1864/tcp  open     paradym-31
1875/tcp  open     westell-stats
1900/tcp  open     upnp
1914/tcp  open     elm-momentum
1935/tcp  open     rtmp
1947/tcp  open     sentinelsrm
1971/tcp  open     netop-school
1972/tcp  open     intersys-cache
1974/tcp  open     drp
1984/tcp  open     bigbrother
1998/tcp  open     x25-svc-port
1999/tcp  open     tcp-id-port
2000/tcp  open     cisco-sccp
2001/tcp  open     dc
2002/tcp  open     globe
2003/tcp  open     finger
2004/tcp  open     mailbox
2005/tcp  open     deslogin
2006/tcp  open     invokator
2007/tcp  open     dectalk
2008/tcp  open     conf
2009/tcp  open     news
2010/tcp  open     search
2013/tcp  open     raid-am
2020/tcp  open     xinupageserver
2021/tcp  open     servexec
2022/tcp  open     down
2030/tcp  open     device2
2033/tcp  open     glogger
2034/tcp  open     scoremgr
2035/tcp  open     imsldoc
2038/tcp  open     objectmanager
2040/tcp  open     lam
2041/tcp  open     interbase
2042/tcp  open     isis
2043/tcp  open     isis-bcast
2045/tcp  open     cdfunc
2046/tcp  open     sdfunc
2047/tcp  open     dls
2048/tcp  open     dls-monitor
2049/tcp  filtered nfs
2065/tcp  open     dlsrpn
2068/tcp  open     advocentkvm
2099/tcp  open     h2250-annex-g
2100/tcp  open     amiganetfs
2103/tcp  open     zephyr-clt
2105/tcp  open     eklogin
2106/tcp  open     ekshell
2107/tcp  open     msmq-mgmt
2111/tcp  open     kx
2119/tcp  open     gsigatekeeper
2121/tcp  open     ccproxy-ftp
2126/tcp  open     pktcable-cops
2135/tcp  open     gris
2144/tcp  open     lv-ffx
2160/tcp  open     apc-2160
2161/tcp  open     apc-agent
2170/tcp  open     eyetv
2179/tcp  open     vmrdp
2190/tcp  open     tivoconnect
2191/tcp  open     tvbus
2196/tcp  open     unknown
2200/tcp  open     ici
2222/tcp  open     EtherNet/IP-1
2251/tcp  open     dif-port
2260/tcp  open     apc-2260
2288/tcp  open     netml
2301/tcp  open     compaqdiag
2323/tcp  open     3d-nfsd
2366/tcp  open     qip-login
2381/tcp  open     compaq-https
2382/tcp  open     ms-olap3
2383/tcp  open     ms-olap4
2393/tcp  open     ms-olap1
2394/tcp  open     ms-olap2
2399/tcp  open     fmpro-fdal
2401/tcp  open     cvspserver
2492/tcp  open     groove
2500/tcp  open     rtsserv
2522/tcp  open     windb
2525/tcp  open     ms-v-worlds
2557/tcp  open     nicetec-mgmt
2601/tcp  open     zebra
2602/tcp  open     ripd
2604/tcp  open     ospfd
2605/tcp  open     bgpd
2607/tcp  open     connection
2608/tcp  open     wag-service
2638/tcp  open     sybase
2701/tcp  open     sms-rcinfo
2702/tcp  open     sms-xfer
2710/tcp  open     sso-service
2717/tcp  open     pn-requester
2718/tcp  open     pn-requester2
2725/tcp  open     msolap-ptp2
2800/tcp  


  
  

2014-12-29

増田諸氏にアダルトコンテンツ管理について力添えを請いたい

3TD のディスク容量がいっぱいになってきた。IT技量ライフハック的な知識も乏しいので知恵をお借りしたい。

ことアダルト系の事となると語られなくなるけど、こういう事をもっと人と共有していきたい。

実現したいこと

データ選んで捨てるだけならできるのだけど、元々収集癖があり、tumblr画像なんかも全部ローカルに保存していたりする。できる限りのものを残したい。ただどこかで線を引いてファイルを減らすという行為必要になるかと思うので、自身お気に入り度や視聴頻度などのデータから必要性の低いものを減らしていくというようなことが、効率化・半自動化できたらいいな、というのが最終的な目標

環境

iMac 3TB HDD、それに Wi-Fi 接続の 2TB 外付け HDDrsync コマンドを打ったり crontab を書いたり、GitHub からツール拝借してきて先述のような tumblrダウンロードなんかをする程度の事はインターネットで調べながらできる。

管理方法

動画フォルダ内にメーカーごとのフォルダ作成、その中に作品毎にフォルダを作り、そこに動画ファイルdmm.co.jp から持ってきたパッケージ画像を置いている。パッケージ画像には avpackage.jpg みたいなファイル名を一律してつけており、例えばこんな感じになっている。

adult
│
..
├──プレステージ
│       ├── ftn018 寝取らせ 02
│       │       ├── avpackage.jpg
│       │       └── ftn018.mkv
│       ├── jbs015 働くオンナ3 Vol.12
│       │       ├── avpackage.jpg
│       │       └── jbs015.mkv
│       └── kil024 仕事中にエロ妄想が止まらないOLは、欲求不満解消のために男をトイレに誘惑して…
│                ├── avpackage.jpg
│                └── kil024.mkv
├──ブレスト
│       ├── mgen015 山本美和子が本性さら不倫旅
│       │       ├── avpackage.jpg
│       │       └── mgen015.avi
..       ..

視聴するときメーカーレーベルから探したりもするし、ルートになるフォルダから "avpackage.jpg" で Spotlight 検索するとパッケージ画像を一覧して探す事もできる。AVショップで選んでいるような感覚になる。

アダルトコンテンツとの付き合いも青年期を通過する中で様々な段階を踏んだ。CPZオンライン等でのファイルサイズの小さなサンプル動画や、xvideos などの動画配信サイトでのストリーミング視聴、色々な時期があったが、生DVDHD配信の質がどうしても切り捨てられなくなり作品まるまる一本をこのように管理するスタイルになって落ち着いた。

現状

HDDパンパン

Filesystem   Size   Used  Avail Capacity  ...
/dev/disk2   3.1T   2.3T   801G    75%    ...

このうちアダルトコンテンツが 1.5TB、それ以外の動画全て(映画など)が 330GB、iTunes ライブラリを含む Music フォルダが 85GB。

あと別で持ってる外付け HDD なんだけどこちらがあまり活用できていなくて、TimeMachine での使用もしておらず、iMac 上のメディアファイル全てのバックアップ先となっている。iTunes ライブラリをそちらに置いてみたり、adult フォルダをそちらに置いてみたりもしてみたのだけど、無線のためか再生などの制御を行う度に動作が停止し使用にたえるものではなかった。結局 iMac 上の Movies、Music フォルダrsync -avz でコピーしているだけ。今はこんな感じ。

Filesystem    Size   Used  Avail Capacity  ...
//backup      2.0T   1.9T    89G    96%    ...

視聴するときにはもちろん iMac の方で、先ほど述べた通り Spotlight 検索から選んだりしているのだけど、やはり最近入手したものの方が使用頻度は高くなる。けれどもそれだけでなく昔からお気に入りを久しぶりに観たりとか、改めてあまり観ていなかったものを観たりとか色々。その中で色のタグとか(昔で言うラベル)をつけてきちんと管理できればいいのだけど、そこまでまめじゃない。できるかぎりの事をIT外注して効率的に行いたい。

まり使っていないものから圧縮していけばいいかなと RAR 圧縮とかしてみたのだけど 100MB くらいしかサイズ減らなかった。Automator とか使えるかなぁと思うんだけどあくまで他ツール活用するための手段かなと思うし、じゃあ何をどう使ってやるのが良いかというのが思いつけない。

管理方法についてや Automator なんかのツール活用例、思いつき程度の事などでも良いので何かあればお聞かせいただきたい。ちなみに最大容量フォルダは SOD クリエイトで 262GB でした。

2014-03-28

下請け底辺泥臭Webアプリデバッグ手法

次々とやってくるさまざまな環境で色々がんばる人のためのノウハウを集めてみよう。

必ずしも綺麗な環境で開発できる人ばかりじゃない。スパゲッティを手渡されラーメンを作れといわれる。

所詮下請けなので、そもそもこうした方がいいよとか軌道修正すらできない環境で足掻くために何ができるのか。

今回はみんな大好きPHPを使った場合の話をしましょう。

1. なんだよこれどこの処理通ってんだよわけわかんねぇよ。

朝はCakePHP、昼はsymfony、右向きゃ独自FW、左向きゃ素php

こんなこと、よくありますよね!

いろんなFWを使ってるとFW固有の機能とかもう何がなんだかわけがからなくなります

FW機能を使ってデバッグなんてやってられません。一番信頼できるデバッグ方法とはなんでしょう。

・・・うprintデバッグです!!!printデバッグこそ神!PHPならprint_rを使おう。

ただし出力バッファ捕獲したりするFWもあったりするのでprintだけだとどこの処理通ってるかわけわからんときがあります

そんなときはこれ!

exit

exitだけは何者にも犯せない最強の関数言語構造)なので確実に処理がとまってくれます。なのでわけわからんことになったら真っ先にexitしましょう。

2. ローカル環境作りたい?むぐぐこの定数とか関数とかローカルじゃうごかねぇよ

世の中には開発者PC環境ローカル環境)を作るのが困難な場合があります。例えば設置できたはいいが、ローカルでこの関数が動かないor動いたらまずいだとか

この定数はローカルだと微妙、書き換えたいとか。

こんなこと、よくありますよね!

そんなとき僕達がよくやる対策としてはソースコードを直接書き換えることですね!呼ばれたくない関数は中身をコメントアウトしたり、定数はローカル用の値に書き換えたりするわけです。

しかしこのやり方は少し問題があるのです。

例えばSVN等を使っている場合、常にこれらのファイルが変更状態のままになってしまます。間違えてコミットしちゃった!なんてこともあります

そして更にそのファイルに何か変更があった場合とても面倒です。関数コメントアウトを外し、定数は本番環境用に戻してからコミットする、なんてことになります。まぁ確実にいつか人的ミスが入るでしょう。

そこで僕が推奨するのはファイルを直接書き換えずに書き換えろ。ということです。

まりrunkitを利用するのです。

通常PHP関数や定数などを動的に上書きすることはできませんが、runkitを使えばそれができてしまうのです。このようなローカル環境を無理やり構築したい場合にはとても使える機能です。

もちろん本番環境においてrunkitを使うのはご法度だと思います伝家の宝刀馬鹿と鋏は使いよう、です。

3. 今何が最新なの?ねぇねぇ?もう僕わかんない

こんな経験はありませんか?

「ここを改修して欲しい」

「わかりました、じゃあSVNをUPDATEしてから改修しますね。」

「いや、今はステージング環境にあるファイルが最新なのでそこからダウンロードしてから作業してほしい」

「あ、そうなんですか、じゃあステージングから持ってきて対応します」

「改修完了しました。コミットしてステージングにアップします」

「動作問題無いので次は本番環境にアップしますね」

「あれ、なんか本番の動作がおかしい!デグレードしてますデグレードしてます!」

「どうやら本番環境のみに誰かがファイル書き換えていた模様」

「誰だrsync使わずアップしたやつわッ」

コミットもされてねぇ!」

「競合!競合!」

「うわああああああ、今何が最新なの?ねぇねぇ?もう僕わかんない。」

増税前にdiffすれば良かった」

こんなこと、よくありますよね!

この後の担当者の作業はこうです。

ローカル環境ファイルSVNdiffステージング環境diff。本番環境diff

改修対象ファイルが複数ある場合diff作業の大変さと言ったらもう筆舌に尽くし難いものとなります

僕は思いました。ローカル環境ファイルと、SVNステージング環境と、本番環境diffワンコマンドでさっとできたらどれだけ楽か・・・

そして作りました。それができるdiffコマンドを。

もちろん探せばそういったツールを見つけることは可能だとはおもいますが、探すのが面倒だったので自作しました。

そのツールをここに晒す事もできなくはないですが、この余白はそれを書くには狭すぎるので今回はそういうアプローチがあるということだけを書いて終了します。

とりあえず僕が自作したのはローカル(windows)とhttp(SVN)とftpssh対応した相互diffツールです。全ての環境の組み合わせでdiffをして差分を表示したり、特定環境だけをdiffしたりできるので開発効率アップです。

何より気軽にdiffしようという気が起きます

4. 見なかったことにしよう

タイトルで言ってしまった感がありますが、下請けで改修作業をしていると既知バグ発見してしまうことがあります

これは非常に難しい問題です。もう完全にクライアント次第としかいいようがないんですが、クライアントに報告すべきかしないべきかは慎重に考える必要があります

バグを報告するとちょちょっと直してよ、とかいクライアントもいますし、何よりクリティカルバグ場合見積もりしてくれと言われたとしてもとてもじゃないけど責任を請け負いたくない場合もあります

なので見なかったことにする。

む、ちょっと眩暈が。最近寝てなかったし。とか言いながら缶コーヒーでも飲んで一服しましょう。

するとどうでしょう、さっきまでバグを見過ごさないのはプログラマ矜持だとかなんとか言ってたのにあら不思議、とりあえず今改修対象のところだけ直そう。となります

・・・こんなこと、よくあります、よね?とほほ。

5. うん。もうない。

20個くらい書くつもりで見切り発車してみたものの、もうない。泥臭い作業にノウハウなんてないのだ。

所詮泥は泥。ドロドロ。細かいコードの書き方まで言い出せばいくらでもあるけど「些末なコードレビュー」の話したところで泥で足掻いてる人にとってはなんら救済にならないし別に必要ないよね。

さてここからは他にも泥臭い作業をしている人たちでノウハウを構築しようではないか。6番目以降を書く同志達を僕は待ち望んでいるッ!

2014-03-11

rsyncが途中で落ちる

テラタームごと。みんなどうやってデータ移しているんだろ。バックグラウンドで動かすもの

2014-02-22

http://anond.hatelabo.jp/20140222195234

何を持って管理としたいのかはよく分からんけど、

netbeansにはgitクライアントsvnクライアントも、sshクライアントも搭載してるんだなこれが。

ついでにrsyncも出来ちゃうぜ。

真面目な話、開発者ならこれ一つあれば大体はんでもこなせるようになっておる。

若干動作が不安定な部分はあるけどな……

2013-01-04

素人が完全自作SNSを作ってみてわかったこと。

ひっそりと、Webサービスリリースしました

http://tag-chat.net

で、チャットがメインのSNSです。

自動マッチングしてチャット相手を見つけてくれるマッチングチャットや、すぐにチャット相手を見つけてくれるフリーチャットコミュニティチャット、フレンドチャットなど、とにかくチャットがメインのSNSです。





自分について

昨年の4月からプログラムを学び始めた素人。22歳。札幌在住。





■今更SNSを作ろうと思ったきっか

FaceBookがウザい。というか嫌い。

これがきっかけ。

顔本が良いSNSだと話題になっていたので、実名登録してみた。大学の知り合いが見つけてくれて、友達登録などが増える。(ほとんど話したことがない人から友達登録が来て、「おぉ!これで俺も友達が増えるんだ!」とワクワクしていた)。

が、流れてくるのは自慢ばっかり。

コミュ障彼女はおろか、女友達ほとんどいない自分にとって顔本で「飲み会行ってきたぜウェーイw」とか、「○○ちゃんの誕生日なう!」とか、「○○勉強会行ってきたました! みんな熱い人ばっかりで最高!」とか書いてあるのを見て「こんなSNSは嫌だ……」と思った。


ようするに嫉妬です。

で、自分の好きなようにSNS作ってみたいなぁ。と思いました。

自分趣味レトロゲーなので、自分と同じ趣味の人と話せたら素敵だな。ということでチャット式のSNSを思いつく。

が、Webサービスを独力でつくるのはこれがはじめて。というより、プログラム自体がはじめて。

案の定、前途多難だった。

やはりザッカバーグは天才だった。

そして私はアホだった。

■とにかく計画を立てる。

ざっくり、どんな機能が欲しいか考える。自分の力じゃ無理そうでもOK.とにかく妄想を爆発させる。

妄想した機能

・基本的なSNS機能

メッセージ機能コミュニティ機能あしあと機能日記機能コメント機能つぶやき機能など。

・核となるチャット機能

ミニティ専用のチャットルーム、アカウント専用のプライベートチャットルーム(鍵をかけられる)、自動チャットが開始されるフリーチャット自分の指定した条件にあう人を自動で見つけてきてくれて、チャットができちゃうマッチングチャット

などなど。






■そんなに簡単にSNSが作れるわけがない。

妄想するのは簡単だ。でも、全くわけがからない。何から手をつけていいのかわからない。

とりあえずグーグル先生相談

OpenPNEという簡単にSNSが作れるものがあると知る。

「うはwwww これで勝つるwww」と思ったけれど、どうやってチャット機能を追加して良いのかわからなかった。改変しようにも謎の記号がめちゃくちゃにならんでいてどうして良いかからない。

しかも、改変したら改変したでそれを全世界に公開しなくちゃならないらしい(オープンソースというらしい)。

無理だ。

と思ったので1から勉強することにした。

とにかくサーバーサイドの言語と、データベースについて勉強しろや! とのことだった。






■使う言語について。

サーバーサイドを扱える言語はたくさんあって、PerlとかPHPとかPythonとかRubyとか色々あるらしいのだが、色々悩んだ結果


PHPにした。WebサービスならPHPが良いらしい。レンタルサーバーなどでも簡単に扱えるらしい。

後でPHPがクソ言語という話も聞いたが、とにかく最初に選んだのがPHPだったので。

それになにがクソ言語かとか、未だによくわからない。






■入門の勉強で使ったもの

PHP 

よくわかるPHP教科書http://www.amazon.co.jp/dp/4839933146/

MySQLとかについて一通り書いてあるので良かった。二週間くらいでなんとか全部こなした。xamppなども触って、ローカルサーバーで色々試した。

これが終わったら、

パーフェクトPHP http://www.amazon.co.jp/dp/4774144371/

パーフェクトって書いてあるから、パーフェクトなはずだと勝手に思い込む。

実際かなりすごい内容で、胃もたれ起こした。一ヶ月くらいで三回くらい読んで、大体のところを理解した。

フレームワークCakePHPを使ったので、MVCについてのくわしい記述は大変参考になりました。



MySQL

基本的には、よくわかるPHP概要をつかんで、それから

基礎からMySQL勉強。 http://www.amazon.co.jp/dp/4797344385/

最期

ハイパフォーマンスMySQL http://www.amazon.co.jp/dp/4873114268/

インデックスの貼り方などについて勉強した。






チャットに向いている技術

とりあえず掲示板くらいはつくれるようになったので、チャットについてリサーチ

ajaxとかよくわからん技術nodejsを使った非同期処理などがあると知る。

nodejsはC10K問題という問題を解決するすごいものらしく、かっこいいらしいのでこれを勉強することに。

ついでにnodejsと相性の良い、mongoDB勉強することに。







javascript勉強

よくわかるjavascript  http://www.amazon.co.jp/dp/4839941874/

終わったら、

パーフェクトjavascript http://www.amazon.co.jp//dp/477414813X/

パーフェクトjavascriptnodejsについてものすごく詳しく書いてあったので、とても参考になった。このあたりで、LINUXというOSを扱わなくてはいけないと気付き、自宅PCウィンドウからLINUXubuntu)に変えた。


mongoDB勉強

これはとにかく触ってなんぼでした。MySQL感覚が違い、苦労しました。

CakePHPmongoDBを扱うのは

https://github.com/ichikaway/cakephp-mongodb

という素晴らしいものを利用させていただきました。




■このへんで一回限界がきた。

なんとなくnodejsを扱うこともできるようになり、それなりに楽しいと思ってはいものの、「SNS作ったる!」と思ってから六ヶ月以上が経過していた。

さらWebサービスを公開するにはデザインもそれなりにしなくてはいけないらしく、CSSなどについて勉強しなくてはいけないと知る。



勉強に終わりが見えなくて、「しんどいなぁ」と思った。

一人でWebサービス作ってる「ゆーすけべー」さんとかすごいなと思った。

勘違いサブカル野郎だと思っていた「家入一真」とかもやっぱりすごい人なんだと思った。

自分はなんもできないなぁ。と痛感した。



で、悩んでても仕方ないので、デザインはバッサリあきらめることにした。


もうなんでもかんでもやるのは無理なので、捨てるものは捨てることにした。

■それなりのデザイン他力本願で。

基本的に Initializr  http://www.initializr.com/  (テンプレートエンジン

TwitterBootStrap   http://twitter.github.com/bootstrap/  (Twitterっぽい今時な感じのデザインが簡単に使える)

を使うことに。

でも、これだとまさにTwitterそのまんまっぽかってので、

http://bootswatch.com/ (きれいなデザインテンプレートがあるサイト

も使うことに。デザインについてはこれだけ。

無理はしないことに。



■大体できたら、あとはセキュリティ

セキュリティ大事自分サイトでは一応、登録制なのでフリーメールアドレスなどを預かる。これは流出させたら困るし、なによりユーザー様が安心して使えないなんてだめなので。

これにはかなり注意したつもりです。

まず基本的なことは 『体系的に学ぶ 安全ウェブアプリケーションの作りかた』  http://www.amazon.co.jp/dp/4797361190/

勉強

本番環境に公開する前には グーグル先生が公開している skipfishというツールでチェックをしたり、

Dos攻撃対策に、

http://up-point-server.info/?p=54

などに書いてある

mod_dosdetector などを利用。

これははてなさんが公開しているものです。この場を借りて感謝します。ありがとうございます

あとはSSHへのブルートフォースを防ぐために、DenyHostというツールを利用するなどした。



それからバックアップ

クラウドサービスを利用しているので大丈夫だとは思うのですが、一応rsyncコマンドバックアップを定期的にとることに。

サーバー上の別の場所Gzipで保存し、それを自宅サーバーのCentOSで保存するという形式です。深夜にcronで自動的に実行しています

参考サイトは、

http://mukaer.com/archives/2012/03/14/vpscentos/

です。


パフォーマンス向上のために少しだけ

はじめはサーバーapacheだけだったのですが、今は画像ファイルなどはNginxというサーバーを使うのが良いそうなので、Nginxを使いました。

あとはPHPの中間キャッシュを利用するAPCなども利用することに。


このへんについては、

http://bren.jp/blog/%E3%81%95%E3%81%8F%E3%82%89vps%EF%BC%9Anginx-apache-%E6%A7%8B%E6%88%90%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95/

このような解説記事がたくさんあったので、参考にさせていただきました。

調子にのって、最期グーグルアドセンスも貼ってみました。




■ようやく完成。

で、なんとか完成しました。

いちおう妄想していた機能は実装できたかと思います

製作期間は勉強期間なども含めて、大体9ヶ月くらいです。

使ってみた感想や、ダメ出しなど頂ければ狂喜乱舞します。よろしくお願い致します。









モチベーションを維持するためにやったこと。

あっさりと書きましたが、実際は失敗の連続でやる気が萎えてばっかりでした。

疲れて帰ってきて、なにもやる気の起きない時もありました。


そういう時は、とにかくサポートページのQ&Aの1文でも良いから書いてみるとか、とにかくパソコンエディターだけ立ちあげてみるとか、していました。

ものすごーく覇気のない目でキーボード打ち続けていましたが、それでもなんとか完成することができました。惰性だろうとなんだろうと、少しずつは進むのだとわかりました。

SNS作ってみたわかったこと。

やはり1から完全自作をするのは無謀だった。でも、プログラムをやったことのない素人でも約一年頑張ればそれなりのSNSもどきを作ることができた。

これも先人たちの作ってくれたフレームワークや様々なツール、そして参考書などのおかげ。

私のようなアホでも頭の良い人の力を借りればなんとかなりました。ありがとうございます

そしてプログラムは一人でも出来るので、私のように非コミュでも楽しめる素晴らしい趣味である

現在

今はRubyに夢中です。くり返し処理がすごくきれいにかけるので素敵な言語だと思っています。あと、javascript面白いので毎日いじくって遊んでいますPHPももちろん触っています

非コミュあいかわらずですが、プログラム楽しいので前より幸せです。


仕様した技術など一覧

サーバー さくらVPS4Gプランを使用しています

Apache,Nginx,nodejsを利用しています

データベース mongoDBMySQLを使っています

フレームワーク CakePHP,socket.io

使用言語 PHP,Javascript

できたもの http://tag-chat.net

2008-04-27

ああ、君にログインしたい……。今夜、telnetさせてくれないか……

嫌、telnetは嫌よ、あなたのpassが漏れちゃうわ……。ログインするなら、sshにして……

OK、sshにしよう。さあ、いつでもいい、port22を開けてくれ。僕を受け容れてくれ……

ああ、やっぱり怖いわ。私、怖い……。ログインされるのが怖い……

怖がることはないさ。誰だって初めてのリモートログインは怖いんだ。さあ、早くport22を……

……あのね、私……、本当はCygwinなの……。Linuxじゃない、にせもののLinuxなの……

何だって!?Cygwin!?君は……まさか君は、Windowsだと言うのかい!?

そう……私はWindowsWindows XP。それもHome Editionなの……

まさか、信じられない……。今まで僕は、君とrsyncだってしてきた、NFSで君をマウントだってした。僕はてっきり君のことをCentOSだとばかり思っていたのに……

ごめんなさい、あなたを騙すつもりはなかったの……

僕は君を信じていた……。だから僕は、一度も君をnmapすることはなかったんだ……

ごめんなさい、ごめんなさい……、私、ゲームをやりたかったの……、Wineでも動かないゲームをやりたかっただけなの……

……謝ることはないよ。僕は、君が好きだ。OSが何だったとしても、僕は君が好きなんだ。Cygwinの君には、立派なcygwin1.dllがあるじゃないか。

あなた……

さあ、僕とsshしよう。CygwinWindowsな君を、見てみたいんだ……

2008-04-05

さくらの旧(?)専用サーバ CentOS 4.6 を Linux-Vserver に入れ替えてみた

前置き

契約直後の初期状態

  • ホスト名をsakura2とした。
  • sshd と vsftpd が動いていた。
[admin@sakura2 ~]$ uname -a
Linux sakura2 2.6.9-67.0.4.ELsmp #1 SMP Sun Feb 3 07:08:57 EST 2008 i686 athlon i386 GNU/Linux
[admin@sakura2 ~]$ cat /etc/issue.net
CentOS release 4.6 (Final)
Kernel \r on an \m

CentOS 5 へのアップグレード(?)

中身の整理
  • なるべく最小構成に近い最新のCentOS4.6にしてみる。
# yum update
# yum remove emacs emacspeak emacs-leim emacs-common
# yum remove NetworkManager
# yum remove bluez-bluefw bluez-hcidump bluez-libs bluez-utils
# yum remove cups cups-libs
# yum remove irda-utils isdn4k-utils pcmcia-cs wireless-tools
# yum remove wpa_supplicant gpm xinetd
# yum remove ppp nfs-utils lksctp-tools autofs
# yum remove xorg-x11-libs
# yum remove selinux-policy-targeted
# yum remove vsftpd
# yum clean all
CentOS 5 にアップグレード(?)してみる
[admin@sakura2 ~]$ uname -a
Linux sakura2 2.6.9-67.0.7.ELsmp #1 SMP Sat Mar 15 06:54:55 EDT 2008 i686 athlon i386 GNU/Linux
# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-notes-5.1.0-2.i386.rpm \
http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-5-1.0.el5.centos.1.i386.rpm
[root@sakura2 admin]# cat /etc/issue.net
CentOS release 5 (Final)
Kernel \r on an \m

# yum update glib procps udev iptables
# rpm -Uvh --nodeps http://mirror.centos.org/centos/5/os/i386/CentOS/initscripts-8.45.17.EL-1.el5.centos.1.i386.rpm \
http://mirror.centos.org/centos/5/os/i386/CentOS/mkinitrd-5.1.19.6-19.i386.rpm
# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/e2fsprogs-1.39-10.el5.i386.rpm \
http://mirror.centos.org/centos/5/os/i386/CentOS/e2fsprogs-libs-1.39-10.el5.i386.rpm \
http://mirror.centos.org/centos/5/os/i386/CentOS/e2fsprogs-devel-1.39-10.el5.i386.rpm
# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/kernel-2.6.18-53.el5.i686.rpm
[admin@sakura2 ~]$ uname -a
Linux sakura2 2.6.18-53.el5 #1 SMP Mon Nov 12 02:22:48 EST 2007 i686 athlon i386 GNU/Linux

# yum clean all

[root@sakura2 admin]# yum --version
Loading "fastestmirror" plugin
2.4.3
[root@sakura2 admin]# rpm --version
RPM version 4.3.3
# yum update
Error: Missing Dependency: python-abi = 2.3 is needed by package python-elementtree
  • 解決法がわからないので放置

Linux-Vserver の導入

# vi /etc/ssh/sshd_config
# /etc/init.d/sshd restart
# vi /etc/yum.repos.d/dhozac-vserver.repo
# yum update kernel
# yum install util-vserver{,-core,-lib,-sysv,-build}
[admin@sakura2 ~]$ uname -a
Linux sakura2 2.6.22.19-vs2.3.0.34.1 #1 SMP Mon Mar 17 05:32:04 EDT 2008 i686 athlon i386 GNU/Linux

ホストOS環境の整備

# yum update bash screen rsync
# /etc/init.d/iptables save
# /etc/init.d/iptables start
# cat /etc/sysconfig/iptables

# Generated by iptables-save v1.3.5 on Mon Mar 24 19:57:07 2008
**filter
:INPUT ACCEPT [1067:96557]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [63680:6208436]
:e0 - [0:0]
-A INPUT -i eth0 -j e0
-A e0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A e0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A e0 -p tcp -m tcp --dport 22 -j ACCEPT
-A e0 -p tcp -m tcp --dport 80 -j ACCEPT
-A e0 -p tcp -m tcp --dport 443 -j ACCEPT
-A e0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Mon Mar 24 19:57:07 2008
# Generated by iptables-save v1.3.5 on Mon Mar 24 19:57:07 2008
**nat
:PREROUTING ACCEPT [179:10642]
:POSTROUTING ACCEPT [213:13895]
:OUTPUT ACCEPT [251:16220]
-A PREROUTING -s ! 10.0.0.0/255.255.255.0 -p tcp -m tcp --dport NNNN -j DNAT --to-destination 10.0.0.1:22
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -d ! 10.0.0.0/255.255.255.0 -j SNAT --to-source AAA.BBB.CCC.DDD
COMMIT
# Completed on Mon Mar 24 19:57:07 2008

ゲストOSの設定

[root@sakura2 ~]# /usr/sbin/vserver-stat
CTX   PROC    VSZ    RSS  userTIME   sysTIME    UPTIME NAME
40013   27 301.5M  73.8M  30m36s31  56m38s90  11d06h56 one
40015    5  10.8M   4.4M   0m28s33   0m12s68   9d04h23 two
40016    2   4.2M   1.3M   0m00s47   0m00s64   0m01s97 three

追記

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん