Я тут недавно собрал в Сизиф fsarchiver - удобная я вам скажу штучка, но он то-же из командной строки. Пока пытаюсь написать к нему обвязку на bash, а вот написать обвязку на C/C++ - пока не решаюсь. И сдерживает меня в первую очередь абсолютное незнание английского языка. Я-бы может и написал на русском, только кто его в мире знает. :)
А для себя может и напишу :)
А по делу - можно попробовать механизм bacula использовать. Сам не пробовал, а теоретически - вроде возможно.