Is it safe to sync MySQL binlogs? I am working on a strategy to replicate my MySQL binlogs to Amazon s3. I have looked into mysqlbinlog --remote-server but it seems like adding a file watcher on /var/log/mysql which triggers an aws s3sync command is a little easier. 

I have tested this with mysqlslap and it seems to work, But I was wondering if anyone had insight as to whether this was a bad practice. Perhaps the files can get corrupted this way?
What do you mean by "sync"?  rsync?  copy?

Do you shutdown mysqld while doing the sync?

What is the value of sync_binlog?

The problem is that mysqld will be writing to the binlog at random times, and your sync has a chance of copying only half of a 'record'.

Your testing probably did not encounter the potential problem because the writes will often be 'atomic'.

Suggest you shutdown mysqld for the duration of the sync.  Even better would be to have an LVM snapshot; this would allow for a much shorter shutdown.

Plan B

Do FLUSH LOGS;.  That will 'rotate' the binlogs -- close the current binlog and start a new binlog with the next higher number.  Then copy, by any convenient means, the flushed binlog (and any previous ones as needed).  This should be totally safe.  It will capture the replication stream up to the point of the FLUSH LOGS.

The only minor tricky part is knowing how many binlogs to copy and what their names are.