通过数据库执行系统命令
一、说明
通过数据库的COPY…PROGRAM…命令可以直接执行操作系统命令。该命令必须使用数据库管理员执行,因该命令执行具有一定破坏性,建议数据库日常使用中尽量不要使用数据库管理员,并经常修改数据库管理员的密码。
该命令适用于瀚高数据库3.0.0及以后版本
二、测试过程
1、创建执行记录的保存表
CREATE TABLE cmd_exec(cmd_output text); |
2、使用COPY…PROGRAM…执行操作系统命令,下面是几个测试案例
(1)切换目录,查看目录下的文件。默认执行目录是$PGDATA
COPY cmd_exec FROM PROGRAM 'cd /root;pwd;ls -lrth'; |
(2)创建可执行脚本并执行
COPY cmd_exec FROM PROGRAM 'echo "touch /tmp/test.txt">/tmp/test.sh;sh /tmp/test.sh'; |
(3)删除文件
COPY cmd_exec FROM PROGRAM 'rm -f /tmp/test.*'; |