summaryrefslogtreecommitdiff
path: root/files
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2011-03-15 20:04:18 -0400
committerMicah Anderson <micah@riseup.net>2011-03-15 20:05:36 -0400
commit31652d945b348175b6fe3a43880a2448a324787b (patch)
treefee0ae8ced2126e6c273efff0e9361faab9a16b4 /files
parent8aaf0f8b167702dd2b8e4d7e01b33d5915cf4f3b (diff)
instead of using $RANDOM, which isn't POSIX, we get even more esoteric by pulling 2 bytes from /dev/urandom, giving them to od which turns them into unsigned decimals, and then we bitshift the output, either by 5 or 6 depending on if we are replacing $RANDOM/1000*60 (right sift by 5 is the same as dividing by 2^N, or /32) or $RANDOM/2000*60 (range of [0,983])
Thanks to dkg for working through this with me, not only did he come up with it faster than a human brain should be able to function, he had the patience to explain all the individual pieces that I did not understand to me.
Diffstat (limited to 'files')
-rw-r--r--files/cron.d/puppetd4
-rw-r--r--files/cron.d/puppetd.CentOS4
-rw-r--r--files/cron.d/puppetd.Gentoo4
3 files changed, 6 insertions, 6 deletions
diff --git a/files/cron.d/puppetd b/files/cron.d/puppetd
index 8b2c289..0a68f4d 100644
--- a/files/cron.d/puppetd
+++ b/files/cron.d/puppetd
@@ -1,5 +1,5 @@
# check if puppet is running
-0 * * * * root /bin/ps ax | /bin/grep -v grep | /bin/grep -q puppetd || (sleep $(($RANDOM/2000*60)) && /etc/init.d/puppet restart)
+0 * * * * root /bin/ps ax | /bin/grep -v grep | /bin/grep -q puppetd || (sleep $(( $(</dev/urandom od -N2 -t u2 -A n) >> 6 )) && /etc/init.d/puppet restart)
# restart puppet once in a while and randomly delay the restart between 0 and 32 minutes -> splay puppetmaster hammering
-0 22 * * */2 root sleep $(($RANDOM/1000*60)) && /etc/init.d/puppet restart > /dev/null
+0 22 * * */2 root sleep $(( $( </dev/urandom od -N2 -t u2 -A none ) >> 5 )) && /etc/init.d/puppet restart > /dev/null
diff --git a/files/cron.d/puppetd.CentOS b/files/cron.d/puppetd.CentOS
index 65239ce..a4f84e9 100644
--- a/files/cron.d/puppetd.CentOS
+++ b/files/cron.d/puppetd.CentOS
@@ -1,5 +1,5 @@
# check if puppet is running
-0 * * * * root /etc/init.d/puppet status > /dev/null || (sleep $(($RANDOM/2000*60)) && /etc/init.d/puppet restart)
+0 * * * * root /etc/init.d/puppet status > /dev/null || (sleep $(( $(</dev/urandom od -N2 -t u2 -A n) >> 6 )) && /etc/init.d/puppet restart)
# restart puppet once in a while and randomly delay the restart between 0 and 32 minutes -> splay puppetmaster hammering
-0 22 * * */2 root sleep $(($RANDOM/1000*60)) && /etc/init.d/puppet restart > /dev/null
+0 22 * * */2 root sleep $(( $(</dev/urandom od -N2 -t u2 -A n) >> 5 )) && /etc/init.d/puppet restart > /dev/null
diff --git a/files/cron.d/puppetd.Gentoo b/files/cron.d/puppetd.Gentoo
index c9811c2..00c5ac0 100644
--- a/files/cron.d/puppetd.Gentoo
+++ b/files/cron.d/puppetd.Gentoo
@@ -1,5 +1,5 @@
# check if puppet is running
-# 0 * * * * root /bin/ps ax | /bin/grep -v grep | /bin/grep -q puppetd || ( sleep $(($RANDOM/2000*60)) && /etc/init.d/puppet restart )
+# 0 * * * * root /bin/ps ax | /bin/grep -v grep | /bin/grep -q puppetd || ( sleep $(( $(</dev/urandom od -N2 -t u2 -A n) >> 6 )) && /etc/init.d/puppet restart )
# restart puppet once in a while and randomly delay the restart between 0 and 32 minutes -> splay puppetmaster hammering
-# 0 22 * * */2 root sleep $(($RANDOM/1000*60)) && /etc/init.d/puppet restart > /dev/null
+# 0 22 * * */2 root sleep $(( $(</dev/urandom od -N2 -t u2 -A n) >> 5 )) && /etc/init.d/puppet restart > /dev/null