Monitor open files (via /proc/pid) of a process. Lists time when it first 
sees the file open (which may be later than when the file actually opened, 
especially at startup of filago), and when it is no longer open. Stop 
running when target process ends.

This includes anon_inode and tcp and unix sockets.


*Only works on Linux or OSes supporting /proc in this manner.*


Usage of ./filago:
  -d uint
        Time granularity for checking files, in milliseconds (default 100)
  -j    Output json (complete json per line)
  -l    Turn on hostname lookup (default is a "-"
  -r    Show only real files, i.e. no pipes, sockets, etc.


Default simple text output as well as json output containing more extensive 
information.


Example text output on Firefox process:


$ ./filago -l -j 3737

2017-05-07T12:40:40.663016-04:00 open socket:[416916] tcp 
198.252.206.25:443 stackoverflow.com. 
2017-05-07T12:40:40.663016-04:00 open anon_inode:[eventpoll] 
2017-05-07T12:40:40.663016-04:00 open socket:[511791] unix - 
2017-05-07T12:40:40.663016-04:00 open 
/home/bsmith/.cache/event-sound-cache.tdb.9bf539dba0e34f7aaf456bd844b6826e.x86_64-redhat-linux-gnu
 

2017-05-07T12:40:40.663016-04:00 open socket:[1265977] unix - 
2017-05-07T12:40:40.663016-04:00 open socket:[1574737] tcp 
173.194.175.189:443 qs-in-f189.1e100.net. 
2017-05-07T12:41:21.110231-04:00 close socket:[1630334] tcp 
52.84.139.212:80 server-52-84-139-212.yto50.r.cloudfront.net. 
2017-05-07T12:42:35.083678-04:00 open socket:[1635598] 
2017-05-07T12:42:35.155006-04:00 close socket:[1635598] 
2017-05-07T12:42:35.155006-04:00 open socket:[1630691] tcp 
172.217.6.229:443 lga25s55-in-f5.1e100.net.


Example json output (complete json per line) on Firefox process:


$ ./filago -l -j 3737
{"filename":"socket:[95066]","type":"unix","socket_info":{"unix_socket":{"num":"ffff8803e6c99f80","refcount":"00000003","protocol":"00000000","flags":"00000000","type":"0001","st":"03","inode":95066}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[95067]","type":"unix","socket_info":{"unix_socket":{"num":"ffff8803e6c99c00","refcount":"00000003","protocol":"00000000","flags":"00000000","type":"0001","st":"03","inode":95067}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"pipe:[95068]","type":"pipe","status":"open","mod_time":"2017-06-02T23:20:10.616170585-04:00"}
{"filename":"/home/bsmith/install/firefox/omni.ja","type":"file","status":"open","mod_time":"2017-05-27T23:24:59.740556075-04:00"}
{"filename":"/home/bsmith/install/firefox/browser/omni.ja","type":"file","status":"open","mod_time":"2017-05-27T23:25:00.173556279-04:00"}
{"filename":"pipe:[95069]","type":"pipe","status":"open","mod_time":"2017-06-02T23:19:57.685144488-04:00"}
{"filename":"pipe:[110949]","type":"pipe","status":"open","mod_time":"2017-06-02T23:19:57.685144488-04:00"}
{"filename":"socket:[95070]","type":"other","status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"pipe:[102268]","type":"pipe","status":"open","mod_time":"2017-06-02T23:20:13.688176034-04:00"}
{"filename":"/home/bsmith/.mozilla/firefox/uqsr6u0q.default/extension-data/ublock0.sqlite","type":"file","status":"open","mod_time":"2017-06-02T23:19:09.638842227-04:00"}
{"filename":"socket:[110951]","type":"unix","socket_info":{"unix_socket":{"num":"ffff880403259c00","refcount":"00000003","protocol":"00000000","flags":"00000000","type":"0001","st":"03","inode":110951}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"anon_inode:[eventfd]","type":"anon_inode","status":"open","mod_time":"2017-06-02T22:20:43.183999937-04:00"}
{"filename":"anon_inode:inotify","type":"anon_inode","status":"open","mod_time":"2017-06-02T22:20:43.183999937-04:00"}

{"filename":"socket:[109319]","type":"tcp","socket_info":{"inode":109319,"tcp_socket":{"rem_hostname":"a23-63-227-177.deploy.static.akamaitechnologies.com.","sl":4,"local_port":58795,"remote_port":80,"st":1,"tr":1,"uid":1000,"tx_queue":296,"tm_when":21,"extra":"3","rem_address":"23.63.227.177","local_address":"192.168.0.101"}},"status":"close","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[106227]","type":"tcp","socket_info":{"inode":106227,"tcp_socket":{"rem_hostname":"a23-63-227-177.deploy.static.akamaitechnologies.com.","sl":1,"local_port":58796,"remote_port":80,"st":1,"tr":1,"uid":1000,"tx_queue":296,"tm_when":21,"extra":"3","rem_address":"23.63.227.177","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[106227]","type":"tcp","socket_info":{"inode":106227,"tcp_socket":{"rem_hostname":"a23-63-227-177.deploy.static.akamaitechnologies.com.","sl":1,"local_port":58796,"remote_port":80,"st":1,"tr":1,"uid":1000,"tx_queue":296,"tm_when":21,"extra":"3","rem_address":"23.63.227.177","local_address":"192.168.0.101"}},"status":"close","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[111430]","type":"tcp","socket_info":{"inode":111430,"tcp_socket":{"rem_hostname":"a23-63-227-177.deploy.static.akamaitechnologies.com.","sl":2,"local_port":58797,"remote_port":80,"st":1,"tr":1,"uid":1000,"tx_queue":296,"tm_when":22,"extra":"3","rem_address":"23.63.227.177","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[111430]","type":"tcp","socket_info":{"inode":111430,"tcp_socket":{"rem_hostname":"a23-63-227-177.deploy.static.akamaitechnologies.com.","sl":2,"local_port":58797,"remote_port":80,"st":1,"tr":1,"uid":1000,"tx_queue":296,"tm_when":22,"extra":"3","rem_address":"23.63.227.177","local_address":"192.168.0.101"}},"status":"close","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[106273]","type":"tcp","socket_info":{"inode":106273,"tcp_socket":{"rem_hostname":"ec2-34-211-94-203.us-west-2.compute.amazonaws.com.","sl":4,"local_port":47111,"remote_port":443,"st":1,"tr":1,"uid":1000,"tx_queue":193,"tm_when":21,"extra":"3","rem_address":"34.211.94.203","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[110114]","type":"tcp","socket_info":{"inode":110114,"tcp_socket":{"sl":4,"local_port":34260,"remote_port":80,"st":1,"tr":2,"uid":1000,"tm_when":987,"extra":"3","rem_address":"72.21.91.29","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"/home/bsmith/.cache/mozilla/firefox/uqsr6u0q.default/OfflineCache/index.sqlite","type":"file","status":"open","mod_time":"2015-05-27T06:40:57.729790739-04:00"}
{"filename":"socket:[106278]","type":"tcp","socket_info":{"inode":106278,"tcp_socket":{"sl":5,"local_port":42312,"remote_port":443,"st":1,"tr":1,"uid":1000,"tx_queue":187,"tm_when":20,"extra":"3","rem_address":"151.101.193.140","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[110116]","type":"tcp","socket_info":{"inode":110116,"tcp_socket":{"sl":2,"local_port":48623,"remote_port":443,"st":1,"tr":1,"uid":1000,"tx_queue":197,"tm_when":20,"extra":"3","rem_address":"151.101.1.140","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[110116]","type":"tcp","socket_info":{"inode":110116,"tcp_socket":{"sl":2,"local_port":48623,"remote_port":443,"st":1,"tr":1,"uid":1000,"tx_queue":197,"tm_when":20,"extra":"3","rem_address":"151.101.1.140","local_address":"192.168.0.101"}},"status":"close","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[113560]","type":"tcp","socket_info":{"inode":113560,"tcp_socket":{"sl":6,"local_port":48628,"remote_port":443,"st":1,"tr":1,"uid":1000,"tx_queue":180,"rx_queue":258,"tm_when":21,"extra":"3","rem_address":"151.101.1.140","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[113560]","type":"tcp","socket_info":{"inode":113560,"tcp_socket":{"sl":6,"local_port":48628,"remote_port":443,"st":1,"tr":1,"uid":1000,"tx_queue":180,"rx_queue":258,"tm_when":21,"extra":"3","rem_address":"151.101.1.140","local_address":"192.168.0.101"}},"status":"close","mod_time":"1969-12-31T19:00:00-05:00"}
{"filename":"socket:[113617]","type":"tcp","socket_info":{"inode":113617,"tcp_socket":{"sl":5,"local_port":48631,"remote_port":443,"st":1,"tr":2,"uid":1000,"tm_when":999,"extra":"3","rem_address":"151.101.1.140","local_address":"192.168.0.101"}},"status":"open","mod_time":"1969-12-31T19:00:00-05:00"}



Any constructive input or feedback appreciated.

Already know: needs tests....  :-)
 
Thanks,
Glen

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to