PostgreSQL-15的 \watch命令

在Linux环境需要以一定频率去查看一个结果的时候,我们可能会用到watch命令,例如watch -n 1 date,watch -n 1 ls这种用法,每一秒执行一次并查看其结果。

postgres=# select now(); now ------------------------------- 2022-09-01 07:37:09.841115+08 (1 row) postgres=# postgres=# \watch 1 Thu 01 Sep 2022 07:37:17 AM CST (every 1s) now ------------------------------- 2022-09-01 07:37:17.628895+08 (1 row) Thu 01 Sep 2022 07:37:18 AM CST (every 1s) now ------------------------------- 2022-09-01 07:37:18.630712+08 (1 row)

这一改动,在我们需要长时间盯着数据库中某个视图结果的时候是比较方便的,但是不得不说,在某些场景下,它着实有一点鸡肋,因为本身Linux系统带有的watch就很强大了,而且数据库新加的\watch命令只能不停执行SQL命令并不断往下刷屏,Linux本身自带的watch可以结合psql客户端的-c命令实现动态刷新结果,而不是频繁向下滚动刷屏的效果,例如执行

watch -n 1 'psql -c "select now();"'

这个结果会位于终端的上方,一直是一个刷新的状态。

而它比较好的一点也是因为这个执行刷屏的这点,因为可以查看每次的变化情况。然而,通过linux的watch也可以把每次执行的结果追加到文件里,这个时候虽然当前的这个终端不能动态查看了,但是只要我们另外开启一个终端,直接tail -f 去查看这个文件,其实和\watch的这个滚动效果是基本一样的。

但因为我是用的本地连接执行,相对于远程执行且需要输密码的情况可能确实这个\watch的更加友好和安全。因为除了第一次连接数据库需要输密码外,不会出现像使用linux的自带的watch命令结合psql的远程连接可能会让明文密码出现在服务器命令行历史记录里的问题

watch -n 1 'psql -c "select now();" >> 1.txt'


免责声明:

1、本站资源由自动抓取工具收集整理于网络。

2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。

3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。

4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。

5、如果您喜欢本资源,请您支持作者,购买正版内容。

6、资源失效,请下方留言,欢迎分享资源链接

文章评论

0条评论