PostgreSQL strategies to deal with disk filling up
On one hand, you can have a look at one of my previous answers to see how you can keep a table size more or less steady.  There you will find a solution with triggers - of course, this can be solved using a cron job as well.  In the latter case I would first check if the row number exceeded a certain limit and the either delete the oldest rows or drop a partition.

On the other hand, as you already noticed, one has to take care of the disk space where pg_xlog is.  When it gets full, it is not that easy to recover...  But checking your database settings you can have a fair estimation how much space you need:


  There will always be at least one WAL segment file, and will normally
  not be more than (2 + checkpoint_completion_target) *
  checkpoint_segments + 1 or checkpoint_segments + wal_keep_segments + 1
  files. Each segment file is normally 16 MB (though this size can be
  altered when building the server). You can use this to estimate space
  requirements for WAL. Ordinarily, when old log segment files are no
  longer needed, they are recycled (renamed to become the next segments
  in the numbered sequence). If, due to a short-term peak of log output
  rate, there are more than 3 * checkpoint_segments + 1 segment files,
  the unneeded segment files will be deleted instead of recycled until
  the system gets back under this limit.


If you don't have replication set up, the maximum is 3 * checkpoint_segments + 1 (times 16 MB).  A typical replicationless setup will need something under 10 GB for pg_xlog, I think.