To remove oil and dirt from the rails, I use the Schienboy from Krause. Often it derailed on turnouts. The edge (red arrow) has the job to lead the cleaning block above the high spot contacts on turnouts, but this works not good. I smooth the edge with a Dremel. After this all works well. I us the locomotive 151. Steam locos with tender are unsuitable, because somtimes the tender derails.
For permanent cleaning I bought the cleaning car 46400 from Roco. The cleaning block is unsuitable to remove the oil from the rails, it is better for hard dirt and rust. If the cleaning cars is permanent in use, the rails will be scratched und new dirt will be found in these scratches. I cut a 0,5 mm strong plastik layer (green arrow) for two pieces of felt (blue arrow). The photo shows the good result.