https://bitbucket.org/sivann/runcached/
Spiros Ioannou 67269ad7b5 LICENSE | 6 yıl önce | |
---|---|---|
LICENSE | 6 yıl önce | |
Makefile | 10 yıl önce | |
README.md | 9 yıl önce | |
contributors.txt | 10 yıl önce | |
gittag.sh | 10 yıl önce | |
runcached | 8 yıl önce | |
runcached.c | 8 yıl önce | |
runcached.py | 10 yıl önce | |
runcached.sh | 10 yıl önce |
Execute commands while caching their output for subsequent calls. Command output will be cached for seconds and "replayed" for any subsequent calls. Original exit status will also be emulated.
After cacheperiod has expired, command will be re-executed and a new result will be cached. Cache data is tied to the command and arguments executed and the path of the runcached executable. Cache results are stored in /tmp
You can use runcached to run resource-expensive commands multiple times, parsing different parts of its output each time. Those commands will be run only once for each cacheperiod.
Implementation is provided in 3 languages, python, C, BASH. Of course the BASH version is not really suggested but it works.
runcached.py [-c cacheperiod]
runcached [-c cacheperiod]
runcached.sh
runcached.py -c 5 date
Query multiple parameters of mysql at the same time, without re-running the query.
#!
UserParameter=mysql.globalstatus[*],/usr/local/bin/runcached.py -c 20 /usr/bin/mysql -ANe \"show global status\"|egrep '$1\b'|awk '{print $ 2}'
And then define some items like so:
#!nolang
Item Name Item Key
-------------- --------------
MySQL DELETES mysql.globalstatus[Com_delete]
MySQL INSERTS mysql.globalstatus[Com_insert]
MySQL UPDATES mysql.globalstatus[Com_update]
MySQL CREATE TABLE mysql.globalstatus[Com_create_table]
MySQL SELECTS mysql.globalstatus[Com_select]
MySQL Uptime mysql.globalstatus[Uptime]
MySQL ALTER TABLE mysql.globalstatus[Com_alter_table]
E.g. for DELETE:
Type: Numeric,
Data Type: Decimal.
Units: QPS
Store Value: Delta (Speed per second)
Show Value: As Is