我编写了一个cronjob,它应该通过filter和regex获取快照,然后运行while循环来删除所有这些快照。
cronjob运行后,我看到只删除了第一个项目,但必须删除更多。
这是剧本:
*/5 * * * * sudo gcloud compute snapshots list --filter="creationTimestamp<$(date -d "-1 day" "+%Y-%m-%d")" --regexp "(.*my-instance-name.*)" --uri | while read SNAPSHOT_URI; do gcloud compute snapshots delete $SNAPSHOT_URI; done
我认为问题在于它发出命令后会问你是否继续(是/否)?&#34;
有些人,因为第一个是默认情况下Y,但也许是其他人,它等待Y / n,这就是为什么它只删除第一个。
谁能帮我弄清楚如何修复它,以便删除从过滤器中选择的所有快照?
答案 0 :(得分:0)
使用-q进行完全模式删除快照而不询问是否可能有帮助
*/5 * * * * sudo gcloud compute snapshots list --filter="creationTimestamp<$(date -d "-1 day" "+%Y-%m-%d")" --regexp "(.*my-instance-name.*)" --uri | while read SNAPSHOT_URI; do gcloud -q compute snapshots delete $SNAPSHOT_URI; done