Answers:
由于您声明对其他解决方案持开放态度,因此我建议您查看一下screen或tmux之类的终端多路复用器。在我看来,由于tmux的独特名称(更容易在搜索引擎中获得相关点击量),因此它是一个更好的选择。
从本质上讲,这种软件使您可以从Shell分离,然后再恢复会话。
psql
是客户端软件在本地计算机上运行,然后与运行Postgres服务器的远程计算机tmux
建立ssh
连接?如果是这种情况,我很遗憾地意识到,如果没有EC2运行,这将无法用于Redshift实例。
您可以尝试发送psql
到后台:
psql -f your_sql_file.sql &
或者,连接到本地数据库,您可以dblink
用来将查询调度到远程数据库:
SELECT dblink_connect('your_connection_name', 'your_connection_string');
SELECT dblink_send_query('your_connection_name', 'your_query');
注意 dblink_send_query
一次只能发送一个查询。因此,如果您要运行多个SQL语句,那么这不是您的解决方案。
或者,您可以pg_agent
在不需要手动干预的远程服务器上启动作业,因此主目录盒的状态对运行作业没有影响。通过设置cron
(或什至更好,at
-谢谢,Erwin)执行脚本来完成相同的任务。
此外,如果您需要手动启动长期运行的作业,则可以screen
在服务器上启动会话并从那里运行文件。在这种情况下,您可以注销并返回首页,脚本将继续运行。
at
命令可能比cron更好。
tmux
可以这样工作:“我将能够关闭本地计算机,并且查询仍在远程服务器上进行”?