执行Linux sort命令并使用自定义的临时目录

时间:2016-10-10 14:57:41

标签: linux shell sorting cron permission-denied

我正在开发一个项目,我需要对某些文件进行排序。我有工作流程,作为工作执行,每周安排一次或两次。但主要的问题是当我从我自己的主机执行相同的排序命令时,它不会给出任何错误。

我从我自己的主机执行的命令:

sort -k2,2 -T=${TMP_DIR} $1 > $2
On runtime all the **$ variables** are given path provided as arguments.

但是当我通过作业调度程序在生产主机上执行时,会出现以下错误:

sort: cannot create temporary file in `=': No such file or directory
  1. 执行命令时:

    sort -k2,2 -T $ {TMP_DIR} $ 1> $ 2

    在我自己的主机和生产主机上执行刚刚卡住

  2. 仅供参考:这个没有“=”的命令在同一个包的另一个脚本中运行良好:这里使用的命令是:

    join \<(sort -u -k1 -T ${TMP_DIR} ${INPUT_FILE_1}) \<(sort -u -k1 -T ${TMP_DIR}  ${INPUT_FILE_2}) \> ${OUTPUT_FILE}";
    
  3. 是否与 -ka,a和-ka 选项有关?

    1. 我也尝试在sort命令中使用 - temporary-directory = 选项,然后它在我的本地计算机上运行,​​但是当我通过生产主机上的作业调度程序执行它时,它会给出权限否认错误。
    2. 作业计划程序正在以作为系统帐户执行作业(runas用户是某个系统帐户)。

      我已确保复制目录及其创建目录 chowned 系统帐户

      正在排序的文件还具有 777权限 临时目录是通过代码本身创建的,因此系统帐户是其所有者!!

      为什么会发生这种奇怪的事情?

      我对sort命令及其解决方案的 -T选项更加好奇,而且它的表现非常奇怪。

0 个答案:

没有答案