Cloning a live/production site to a test/development version
For most of our D6 and D7 sites we use drush to clone and sync staging and development environment from the production server.


Basic setup of the test/staging environment should be done using drush make or cloned from your version control.
Then you can sync the data using drush sql-sync [paramenters] [source] [destination] and user generated content using drush rsync [source] [destination].
Depending on your setup it might be advisable to run a script that truncates your user table or similar.


Both drush and drush make is easily installed using Homebrew or similar.

From now on you can easily resync your database using sql-sync as often as needed.