AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-7826

ptrcao's questions

Martin Hope
ptrcao
Asked: 2022-10-30 10:12:58 +0800 CST

命令手动运行成功,但在 cronjob 中安静地失败

  • 5

我将其作为 cron 作业运行:

( export PATH='/usr/bin:/bin' && echo "$PATH" && wget "https://www.mahmansystems.com.au/WSDataFeed.asmx/DownLoad?CustomerCode=%2F&WithHeading=true&WithLongDescription=true&DataType=0" -O mahman_direct.zip ) && echo 'I reached the end' &>> /home/myparadise/public_html/wp-content/uploads/import/files/output.txt

当我以 cron 用户身份在 CLI 中运行时,它工作正常。

到目前为止,我只有两个导致 cron 作业悄悄失败的原因,这可以解释为在 CLI 中与在 cron 中运行命令时用户和路径的差异,但这次似乎也不是,因为我测试了 cmd在 CLI 中作为 cron 用户,并且没有观察到权限错误。

wget 确实输出/显示一些描述检索文件过程的文本,但用户不需要交互或输入/响应。

没有错误被定向到 output.txt。

还有什么可能是错的?

也尝试过curl -sLo替代方案,以防万一。没什么区别。

cron
  • 2 个回答
  • 32 Views
Martin Hope
ptrcao
Asked: 2022-10-30 04:55:42 +0800 CST

记录整个 && 命令链的错误(在 Cron 作业中)

  • 5

在我的一个 cronjobs 中,我有一个长&&链命令,在它的最后,我放了2>>/home/myparadise/public_html/wp-content/uploads/import/files/raytheon/raytheon_log_error.txt- 表示我希望任何错误都进入文件raytheon_log_error.txt

cd /home/myparadise/public_html/wp-content/uploads/import/files/raytheon && wget "https://www.raytheonsystems.com/test" -O raytheon_direct.zip && unzip -q raytheon_direct.zip && rm -f raytheon_direct.zip && csvjoin --left -c "MANUFACTURER SKU,MPN" $(ls -Art ASH* | tail -n 1) /home/myparadise/public_html/wp-content/uploads/import/files/raytheon/raytheon2_multi_images_only.csv > raytheon_new_joined.csv && wget -q -O - "https://www.myparadise.com.au/wp-load.php?import_key=XXXX&import_id=111&action=trigger" 2>>/home/myparadise/public_html/wp-content/uploads/import/files/raytheon/raytheon_log_error.txt

但是,我从未收到该文件的错误。现在,我不能 100% 确定我期待什么错误,但有理由认为,由于最后一个命令从未执行过,因此在此过程中发生了一些故障。 (编辑:我随后发现该错误与权限相关:raytheon_direct.zip: Permission denied-但是,问题仍然存在,因为我希望将来记录任何此类和所有错误。)

我该如何解决这个问题,以便如果其中一个&&命令块失败,那么它将被记录为错误raytheon_log_error.txt,包括具体原因?

shell
  • 1 个回答
  • 35 Views
Martin Hope
ptrcao
Asked: 2019-12-23 09:19:43 +0800 CST

如何去掉 JSON 数组中数字的小数位?

  • 4

bash可以发出脚本中的什么 shell 命令来有效地从 JSON 文件中的数字中去除所有小数位,例如:

    [
        {
            "IMSKU": "1000001", 
            "AttributeID": 7332.0, 
            "Value": "McAfee Host Intrusion Prevention for Desktops safeguards your business against complex security threats that may otherwise be unintentionally introduced or allowed by desktops and laptops. Host Intrusion Prevention for Desktops is easy to deploy, configure, and manage.", 
            "Unit": null, 
            "StoredValue": null, 
            "StoredUnit": null, 
            "Name": "Marketing text", 
            "Format": "1", 
            "Position": "1", 
            "Group_Name": "Basic Specification", 
            "AGGroup_Position": 0.0, 
            "Product_Hierarchy": 15198001453.0
        }, 
        {
            "IMSKU": "1000001", 
            "AttributeID": 7343.0, 
            "Value": "May 2013", 
            "Unit": null, 
            "StoredValue": null, 
            "StoredUnit": null, 
            "Name": "PI Date", 
            "Format": "1", 
            "Position": "1", 
            "Group_Name": "PI DATE", 
            "AGGroup_Position": 1.0, 
            "Product_Hierarchy": 15198001453.0
        }, 
        {
            "IMSKU": "1000001", 
            "AttributeID": 7344.0, 
            "Value": "McAfee", 
            "Unit": null, 
            "StoredValue": "0.00", 
            "StoredUnit": null, 
            "Name": "Brand Name", 
            "Format": "3", 
            "Position": "1", 
            "Group_Name": "PRODUCT", 
            "AGGroup_Position": 2.0, 
            "Product_Hierarchy": 15198001453.0
        }
    ]

以便

"AttributeID":  7344.0

会成为

"AttributeID":  7344

例如,等等。

shell json
  • 1 个回答
  • 3945 Views
Martin Hope
ptrcao
Asked: 2019-12-22 20:35:28 +0800 CST

csvsql查询的语法错误?

  • 0

我有一个 csv 文件attributes.csv,我想从中将所有记录检索到一个新文件attributes_withoutPIDate.csv中,不包括Name列以“PI Date”为值的记录。

csvsql以这种方式指挥

csvsql -d ',' -I --query 'select * where Name <> "PI Date" from attributes' attributes.csv > attributes_withoutPIDate.csv

产生错误

(sqlite3.OperationalError) near "from": syntax error
[SQL: select * where Name <> "PI Date" from attributes]
(Background on this error at: http://sqlalche.me/e/e3q8)

我怀疑语法错误。有人可以建议如何解决它吗?

mysql csv
  • 1 个回答
  • 83 Views
Martin Hope
ptrcao
Asked: 2019-12-22 01:56:42 +0800 CST

连接同一 csv 文件的列以创建具有新标题的新列

  • 0

我所拥有的是一个 CSV 文件:

+------------+--------------+
| Category I | Sub-Category |
+------------+--------------+
|       1144 |          128 |
|       1144 |          128 |
|       1000 |          100 |
|       1001 |          100 |
|       1002 |          100 |
|       1002 |          100 |
|       1011 |          102 |
|       1011 |          102 |
|       1011 |          102 |
|       1011 |          102 |
|       1011 |          102 |
|       1011 |          102 |
|       1013 |          103 |
|       1013 |          103 |
|       1013 |          103 |
|       1013 |          103 |
|       1013 |          103 |
|       1013 |          103 |
|       1013 |          103 |
+------------+--------------+

我希望将上面的第一列和第二列连接起来形成第三个新列,带有一个新的任意标题,效果如下:

+-------------+--------------+-----------------------+
| Category ID | Sub-Category | Arbitrary New Heading |
+-------------+--------------+-----------------------+
|        1144 |          128 |               1144128 |
|        1144 |          128 |               1144128 |
|        1000 |          100 |               1000100 |
|        1001 |          100 |               1001100 |
|        1002 |          100 |               1002100 |
|        1002 |          100 |               1002100 |
|        1011 |          102 |               1011102 |
|        1011 |          102 |               1011102 |
|        1011 |          102 |               1011102 |
|        1011 |          102 |               1011102 |
|        1011 |          102 |               1011102 |
|        1011 |          102 |               1011102 |
|        1013 |          103 |               1013103 |
|        1013 |          103 |               1013103 |
|        1013 |          103 |               1013103 |
|        1013 |          103 |               1013103 |
|        1013 |          103 |               1013103 |
|        1013 |          103 |               1013103 |
|        1013 |          103 |               1013103 |
+-------------+--------------+-----------------------+

我通常的首选实用程序,csvkit 没有办法实现这一点,afaik - 请参阅https://github.com/wireservice/csvkit/issues/930。

什么是不需要高级编程知识的简单解决方案,可以实现这一点?

我模糊地意识到 awk 和 sed 是潜在的解决方案,但我不想将查询限制在那些以防万一有更好(即更简单)的解决方案的情况下。

该解决方案必须对非常大的文件有效,即包含 120,000+ 行。

编辑:为了方便那些想要破解它的人,我已经包含了示例数据;在这里下载:https ://www.dropbox.com/s/achtyxg7qi1629k/category-subcat-test.csv?dl=0

awk sed
  • 2 个回答
  • 1202 Views
Martin Hope
ptrcao
Asked: 2019-09-16 10:01:43 +0800 CST

wget 没有检索到正确大小的文件(文件损坏或不完整?)

  • 0

我不明白...

实际的下载链接似乎不是 http 链接,而是一些 Javascript 操作?

javascript:SendFileDownloadCall('PRODIMAGES.CIF.zip','PRODIMAGES.CIF.zip');

所以手动下载后,我去浏览器的下载历史复制直接链接 https://au.ingrammicro.com/_layouts/CommerceServer/IM/FileDownload.aspx?DisplayName=STD_FULL_FILEFEED.TXT&FileName=STDPRICE_FULL.TXT.zip

我将 URL 连同我的网站凭据一起输入 wget:

wget -q --user=XXXX --password=XXXX "https://au.ingrammicro.com/_layouts/CommerceServer/IM/FileDownload.aspx?DisplayName=STD_FULL_FILEFEED.TXT&FileName=STDPRICE_FULL.TXT.zip" -o STDPRICE.zip

后来,我发现添加 --user 和 --password 没有区别,所以我省略了:

[root@server datafiles]# wget "https://au.ingrammicro.com/_layouts/CommerceServer/IM/FileDownload.aspx?DisplayName=STD_FULL_FILEFEED.TXT&FileName=STDPRICE_FULL" -O STDPRICE.zip
--2019-09-15 19:53:29--  https://au.ingrammicro.com/_layouts/CommerceServer/IM/FileDownload.aspx?DisplayName=STD_FULL_FILEFEED.TXT&FileName=STDPRICE_FULL
Resolving au.ingrammicro.com (au.ingrammicro.com)... 104.98.45.15
Connecting to au.ingrammicro.com (au.ingrammicro.com)|104.98.45.15|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: /_layouts/CommerceServer/IM/Login.aspx?ReturnUrl=%2f_layouts%2fCommerceServer%2fIM%2fFileDownload.aspx%3fDisplayName%3dSTD_FULL_FILEFEED.TXT%26FileName%3dSTDPRICE_FULL [following]
--2019-09-15 19:53:29--  https://au.ingrammicro.com/_layouts/CommerceServer/IM/Login.aspx?ReturnUrl=%2f_layouts%2fCommerceServer%2fIM%2fFileDownload.aspx%3fDisplayName%3dSTD_FULL_FILEFEED.TXT%26FileName%3dSTDPRICE_FULL
Reusing existing connection to au.ingrammicro.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 85341 (83K) [text/html]
Saving to: ‘STDPRICE.zip’

100%[===================================================================================================================================================================================================>] 85,341       405KB/s   in 0.2s

2019-09-15 19:53:30 (405 KB/s) - ‘STDPRICE.zip’ saved [85341/85341]

无论如何,我没有获得与通过人工点击并从网站下载获得的文件相同的文件,而是获得了一个小得难以置信的文件。

确认我的恐惧,当我尝试解压缩时,我得到:

$ [root@server datafiles]# unzip STDPRICE.zip
Archive:  STDPRICE.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of STDPRICE.zip or
        STDPRICE.zip.zip, and cannot find STDPRICE.zip.ZIP, period.

档案检查:

$ [root@server datafiles]# file STDPRICE.zip
STDPRICE.zip: HTML document, UTF-8 Unicode text, with very long lines, with CRLF line terminators

那么 wget 实际上已经下载了一个 HTML 文件,该文件被呈现为一个.txt.zip文件?有人可以启发我吗?

wget
  • 1 个回答
  • 2686 Views
Martin Hope
ptrcao
Asked: 2019-08-18 09:27:02 +0800 CST

&& 和 ; 链接命令:C 是否在 A && B 中执行;C 如果 B 返回非零退出状态?[复制]

  • 0
这个问题在这里已经有了答案:
分号和双 && 有什么区别 [重复] 3 个答案
3年前关闭。
A && B ; C
  • A 返回退出状态为零。

  • B 返回非零退出状态。

  • 如果执行 C,则返回退出状态为零。

那么,以下两种情况中的哪一种会发生(A被认为在任何一种情况下都会执行):

  1. Bash 将执行 B 和 C

  2. Bash 会执行 B 但不会执行 C

作为这个问题的扩展,我们将如何修改链以允许替代方案(1 或 2)的行为?

编辑:

我不是在问 && 与 ; 的含义。.

我知道 A 和 B 无论如何都会被执行。剩下的情况是要么忽略 C,因为 B 返回非零退出状态,要么跳过 B 并根据自身的优点重新评估 C。

bash
  • 1 个回答
  • 119 Views
Martin Hope
ptrcao
Asked: 2019-07-28 16:38:18 +0800 CST

在 bash 中:过滤,按名称中的日期排序,并返回最近日期的名称

  • 0

在 bash 中,我只想将文件名列表过滤为 .csv,根据日期顺序(名称中的日期,而不是时间戳)排序,然后根据名称中的日期顺序返回最近的文件名:

[root@server test2]# curl -l "ftp.fakeurl.com.au/In Stock Daily CSV/"  --user username:password
InStockDaily01.07.19.csv
InStockDaily01.07.19.xls
InStockDaily02.07.19.csv
InStockDaily02.07.19.xls
InStockDaily03.06.19.csv
InStockDaily03.06.19.xls
InStockDaily03.07.19.csv
InStockDaily03.07.19.xls
InStockDaily04.06.19.csv
InStockDaily04.06.19.xls
InStockDaily04.07.19.csv
InStockDaily04.07.19.xls
InStockDaily05.06.19.csv
InStockDaily05.06.19.xls
InStockDaily05.07.19.csv
InStockDaily05.07.19.xls
InStockDaily06.06.19.csv
InStockDaily06.06.19.xls
InStockDaily07.06.19.csv
InStockDaily07.06.19.xls
InStockDaily08.07.19.csv
InStockDaily08.07.19.xlsx
InStockDaily09.07.19.csv
InStockDaily09.07.19.xls
InStockDaily10.07.19.csv
InStockDaily10.07.19.xls
InStockDaily11.06.19.csv
linux bash
  • 2 个回答
  • 755 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve