如何将Linux命令df-htext4输出插入数据库表
有人能告诉我如何将Linux命令数据插入表中吗 例如:如何将Linux命令df-htext4输出插入数据库表,linux,postgresql,postgresql-9.1,archlinux,Linux,Postgresql,Postgresql 9.1,Archlinux,有人能告诉我如何将Linux命令数据插入表中吗 例如: postgres@PTFPG01:/root$ df -ht ext4 Filesystem Size Used Avail Use% Mounted on /dev/sda1 98G 15G 79G 16% / /dev/sdb1 2.0T 921G 1008G 48% /data 我已尝试使用insert安装管道,但出现错误: root@PTFPG01:~# df -ht ext4
postgres@PTFPG01:/root$ df -ht ext4
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 98G 15G 79G 16% /
/dev/sdb1 2.0T 921G 1008G 48% /data
我已尝试使用insert安装管道,但出现错误:
root@PTFPG01:~# df -ht ext4 | psql -d DBA_Monitoring -p 6432 -U postgres -W Olxoo30 -c " insert into driver_size values()"
psql: warning: extra command-line argument "Olxoo30" ignored
Password:
ERROR: syntax error at or near ")"
LINE 1: insert into driver_size values()
create table driver_size (
Filesystem varchar (50),
Size varchar (10),
Used varchar (10),
Avail varchar (10),
Use varchar (10),
Mounted_on varchar (100)
);
有人能告诉我如何将数据插入表中吗?这对您有用吗
df -ht ext4 | tail -n+2 | sed -E "s/ +/\t/g" | psql -d DBA_Monitoring -p 6432 -U postgres -W Olxoo30 -c 'copy driver_size from stdin;'
这对你有用吗
df -ht ext4 | tail -n+2 | sed -E "s/ +/\t/g" | psql -d DBA_Monitoring -p 6432 -U postgres -W Olxoo30 -c 'copy driver_size from stdin;'
-W开关不将您的密码作为参数;它的作用是使程序绕过获取密码的其他机制,从键盘提示您输入密码。您应该通过其他机制(PGPASSWORD、.pgpass等)提供密码,而不是绕过它们 PostgreSQL没有支持一个或多个空格作为单个分隔符的复制模式,因此需要其他程序来处理输出。我选择了
sed
来做这件事。如果您的任何字段中有文字空白,则可能会出现问题
由于COPY的文本格式不支持HEADER选项,因此我改为使用tail
删除HEADER行。把它们放在一起,然后:
df -ht ext4 | sed 's/\s\s*/\t/g' | tail +2 | psql -c 'copy driver_size from stdin'
-W开关不将您的密码作为参数;它的作用是使程序绕过获取密码的其他机制,从键盘提示您输入密码。您应该通过其他机制(PGPASSWORD、.pgpass等)提供密码,而不是绕过它们 PostgreSQL没有支持一个或多个空格作为单个分隔符的复制模式,因此需要其他程序来处理输出。我选择了
sed
来做这件事。如果您的任何字段中有文字空白,则可能会出现问题
由于COPY的文本格式不支持HEADER选项,因此我改为使用tail
删除HEADER行。把它们放在一起,然后:
df -ht ext4 | sed 's/\s\s*/\t/g' | tail +2 | psql -c 'copy driver_size from stdin'
你真的在用9.1吗?那是很古老的你真的用9.1吗?那是相当古老的