Кстати, зачем реализовывать свое, если есть готовое?
Ну, бывают же ситуации, в которых это может потребоваться

Скажем, из своего ПО нужно в числе прочих функций выполнять резервное копирование, а применение стандартных инструментов видится менее подконтрольным процессом (в плане контроля ошибок или разграничения доступа, например). Или, скажем, ТЗ не позволяет.
McZim, если это выполнение админских обязанностей, то надеюсь, ты свой бэкап по прямым обязанностям применять не собираешься

А то в случае, если будешь менять работу, тебе за самодельный бэкап сменщик, скорее всего, спасибо не скажет =) Думаю, админить лучше стандартными средствами, а самодеятельность - для себя

Что касается выбора реализации - то это зависит от специфики применения: не зря тот же dump поддерживает, судя по ману, неслабый набор опций.