diff --git a/roles/etcd/handlers/backup.yml b/roles/etcd/handlers/backup.yml
index aeaa2b5fb72107b178fa791d3a082f3ece6253d2..6d2cc8bcb694d0b6ed5c94b49030ea26ca5eee4e 100644
--- a/roles/etcd/handlers/backup.yml
+++ b/roles/etcd/handlers/backup.yml
@@ -62,5 +62,5 @@
 - name: Remove old etcd backups
   shell:
     chdir: "{{ etcd_backup_prefix }}"
-    cmd: "find . -name 'etcd-*' | head -n -{{ etcd_backup_retention_count }} | xargs rm -rf"
+    cmd: "find . -name 'etcd-*' -type d | sort -n | head -n -{{ etcd_backup_retention_count }} | xargs rm -rf"
   when: etcd_backup_retention_count >= 0