An earthquake registering 4.5 on the Richter scale has shaken the small South Australian town of Peterborough.

Local police sergeant Bryce Anderson said the town's 2,200 residents escaped damage or injury.

The quake struck the town, about 250km north-east of Adelaide, at 10.59am (CDT) on Monday and lasted just a few seconds.

"There was heavy rumbling and vibrations but that was it," said Sgt Anderson.

"I've had no reports of damages or injuries."

He said the town, which had a smaller earthquake last week with a magnitude of 3.5, had just held an Australia Day breakfast and citizenship ceremony.

Seismologist David Love, from the Department of Primary Industries and Resources, said the earthquakes may be related to the nearby Flinders Ranges.

"We don't know why earthquakes occur there - there are no faultlines in the area - but they are more associated with the Flinders Ranges," he said.