ssh cronjob with while只执行一次

时间:2017-07-21 11:19:02

标签: linux ssh cron google-cloud-platform

我编写了一个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,这就是为什么它只删除第一个。

谁能帮我弄清楚如何修复它,以便删除从过滤器中选择的所有快照?

1 个答案:

答案 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