Clojure执行Shell命令 - 转储postgres

时间:2015-01-26 14:10:50

标签: clojure

我正在尝试执行此代码:

(define dump-db []
 (. (Runtime/getRuntime) exec "pg_dump database-name | gzip -c > db-name.out.gz"))

但是没有创建db-name.out.gz文件。 其他命令如" ls"或者"触摸foo.txt"成功执行了。

任何帮助?

1 个答案:

答案 0 :(得分:0)

我现在使用此代码:

(defn foo [line]
(with-open [wrtr (writer "/tmp/test.txt" :append true)]
  (.write wrtr (str line "\n"))))

(->> (.. Runtime getRuntime (exec "pg_dump db-name") getInputStream)
     java.io.InputStreamReader.
     java.io.BufferedReader.
     line-seq
     (map foo))