Pues empieza por hacer tu consulta a tu BD (tabla o tablas) .. Si habitualmente harias un: (por ejemplo)
While (.....){
echo $row['campo1'].";".$row['campo2']."<br>";
}
concatena cada registro en una variable e incluyele un salto de línea para separar registros (o el caracter q uses para delimitar registros ..)
algo tipo:
while (....) {
$resultado .= $row['campo1'].";".$row['campo2']." \n";
}
(con el .= concatenas su valor de esa variable con lo q tuviera ..)
Y una vez q tengas tu $resultado en una cadena .. lo mandas a un archivo con fwrite() (previos sus fopen() correspondientes) ..
De todas formas .. haciendo un "cron" que ejecute un comando en la shell de Mysql:
msyqldump
http://www.mysql.com/doc/en/mysqldump.html
Sería mas rápido q hacer que un script.php se ejecute (ademas q si vas a correr un script.php en modo CGI o CLI vas a tener q tener eso corriedo y configurado ..).
Ademas en el mysqldump tienes opciones para delimitar la forma en que vas a generar el archivo .. con sus delimitadores de registros y de campos ..
Sería recomendable q usaras la Opción "SQL" ya q si dices q vas a meter un "cron" será porque tienes acceso y permisos a ese sistema y a esa Mysql ..
Un saludo,