Skip to content

Instantly share code, notes, and snippets.

View wrossmann's full-sized avatar
👺
¯\_(ツ)_/¯

Wade Rossmann wrossmann

👺
¯\_(ツ)_/¯
  • Victoria, BC
View GitHub Profile
Script:
ARGS_COMMAND='find logs -type f ! -size 0 -exec grep -l "Broken pipe" {} \;'
parallel -j $MAXJOBS -i bash -c $EXEC_COMMAND -- $($ARGS_COMMAND)
Bash -x output:
++ find logs -type f '!' -size 0 -exec grep -l '"Broken' 'pipe"' '{}' '\;'
find: missing argument to `-exec'
@wrossmann
wrossmann / spamassassin_test_message
Last active August 29, 2015 13:56
A message I've devised to hit enough SpamAssassin rules to be classed as spam, but not discarded by most systems. Useful for testing. Currently cores 12.3 on a stock install without bayes.
hello friend
i am not a registered investment advisor but there is a stock alert that i think is a strong buy
you can get unclaimed prizes from oprah! sometimes viagra or cialis or vicodin
enlarge whanger with money back guarantee even if you have poor credit for low price with no medical exam
sincerely, your trusted friend
captain tin-encapsulated ham-like product
@wrossmann
wrossmann / get_last_lines.php
Last active August 29, 2015 14:07
This function will read $file backwards, $blocksize bytes at a time, until it finds that it contains at least $lines "\n" characters. It then breaks the buffer into an array of lines, pares out the extras, and returns the data according to the optional arguments $desired_endl and $as_array.
<?php
function get_last_lines($file, $lines, $as_array=false, $desired_endl="\n", $blocksize=1024) {
$buffer = '';
if( ! $fh = fopen($file, 'r') ) { die('could not open file'); }
fseek($fh, ($blocksize * -1) - 1, SEEK_END);
while(true) {
$buffer = fread($fh, $blocksize) . $buffer;
if( preg_match_all("/\n/", $buffer, $trash) > $lines) {
break;
input {
lumberjack {
type => "postfix"
port => 6782
ssl_certificate => "/opt/logstash/etc/server.crt"
ssl_key => "/opt/logstash/etc/server.key"
}
}
output {
{
"network": {
"servers": [ "loki-test-01.iad.company.com:6782" ],
"ssl ca": "/etc/logstash-forwarder/ca.crt",
"timeout": 15
},
"files": [
{
"paths": [ "/usr/local/psa/var/log/maillog" ],
"fields": { "type": "postfix" }
chef > ::File.exists?(node['c_elk']['logstash']['extra_conf_dir']+'/server.crt')
=> true
chef > ssl_defaults = node['c_elk']['logstash']['ssl_subj_defaults']
=> {"C"=>"CA", "ST"=>"BC", "L"=>"City", "O"=>"Company", "OU"=>"IT", "emailAddress"=>"servers@company.com"}
chef > ssl_subject = sprintf('/C=%s/ST=%s/L=%s/O=%s/OU=%s/CN=%s/emailAddress=%s',
chef > ssl_defaults['C'], ssl_defaults['ST'], ssl_defaults['L'],
chef > ssl_defaults['O'], ssl_defaults['OU'], node['fqdn'], ssl_defaults['emailAddress']
chef ?> )
=> "/C=CA/ST=BC/L=City/O=Company/OU=IT/CN=chef-ls-test-01.iad.company.com/emailAddress=servers@company.com"
chef > ssl_subject == `openssl x509 -in #{node['c_elk']['logstash']['extra_conf_dir']}/server.crt -noout -subject | cut -d " " -f 2-`.strip
@wrossmann
wrossmann / int_to_perms.php
Last active August 29, 2015 14:17
Translate an integer representing unix permissions into human-readable format.
<?php
function int_to_perm($int) {
return sprintf(
'%s%s%s',
$int & 4 ? 'r' : '-', // read
$int & 2 ? 'w' : '-', // write
$int & 1 ? 'x' : '-' // execute
);
}
@wrossmann
wrossmann / StrTok.php
Created April 1, 2015 22:34
String tokenizer class allows mulitple simultaneous token chars, and multiple simultaneous tokenizers.
<?php
class StrTok {
const INCL_PREV = 1; // include previous token at beginning of string
const INCL_CUR = 2; // include current token at end of string
const SKIP_EMPTY = 4; // skip empty strings
private $string, $tokens, $flags, $curpos;
public function __construct($string, $tokens, $flags=0) {
$this->string = $string;
<?
foreach($filters as $pos => $filter) {
if( ! $filter instanceof Filter\FilterInterface ) {
throw new \InvalidArgumentException(
sprintf('Argument 3 passed to %s::%s must be an array of instances of %s, %s given for index %d',
__CLASS__, __FUNCTION__, 'Filter\FilterInterface', get_class($filter), $pos)
);
}
}

Directory structure:

src/
	Foo.php
	Foo/
		Exception.php
		Excecption/
			Unauthorized.php
			NotFound.php

Method.php