运行cmd ubuntu之前切换用户[重复]

问题描述 投票:0回答:1

我正在尝试在 ubuntu 服务器中运行 cron 作业来每天备份我的数据库。

所以我使用这个命令:

sudo -i -u postgres && pg_dump -Fc DbName > DbName_backup.dump && ... && ... && ...

我遇到的问题是你无法在单个语句中切换用户和运行命令,它永远不会起作用。

我必须打电话给

sudo -i -u postgres
,然后在另一份声明中打电话给
pg_dump -Fc DbName > DbName_backup.dump && ... && ... && ...

但我希望它能在一个语句中工作。在一行!!!

postgresql shell ubuntu terminal cron
1个回答
1
投票

sudo
不会“切换用户”;它以另一个用户的身份运行单个命令。您可以让该单个命令成为一个单独的 shell 实例,用于解析并执行列表的其余部分。 sudo -i -u postgres sh -c 'pgdump -Fc DbName > DbName_backup.dump && ... && ... && ...'

这增加了一定程度的引用,这可能会使提供
sh -c

的论点变得更加困难。因此,您可能会考虑将命令放入文件中以作为单个脚本执行。

    

© www.soinside.com 2019 - 2024. All rights reserved.