相关疑难解决方法(0)

在shell中,"2>&1"是什么意思?

在Unix shell中,如果我想要组合stderrstdout进入stdout流进行进一步操作,我可以在命令的末尾添加以下内容:

2>&1
Run Code Online (Sandbox Code Playgroud)

所以,如果我想head在输出上使用g++,我可以这样做:

g++ lots_of_errors 2>&1 | head
Run Code Online (Sandbox Code Playgroud)

所以我只能看到前几个错误.

我总是很难记住这一点,而且我不得不去查阅它,主要是因为我不完全理解这个特殊技巧的语法.

有人可以打破这个并按字符解释具体2>&1 意义吗?

unix bash shell redirect

2121
推荐指数
16
解决办法
103万
查看次数

Crontab没有运行我的python脚本

我的python脚本没有在我的crontab下运行.

我把它放在顶部的python脚本中:
crontab -e

我试过这样做:
myscript.py

添加到我的crontab -e:

#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

我的/ var/log/cron文件说:
/usr/bin/python

但是我的脚本没有运行,因为当我检查我的sql数据库时,没有任何改变.如果我直接在终端中运行它,如下所示:

/home/me/project/myscript.py

我得到了正确的结果.

这是myscript.py:

chmod a+x myscript.py
Run Code Online (Sandbox Code Playgroud)

编辑:每条评论:是的,/usr/bin/python /home/me/project/myscript.py存在.我也可以使用just直接运行python脚本crontab -e.myscript.py作品.所以我不相信这是原因?

python cron

32
推荐指数
6
解决办法
6万
查看次数

crontab是否接受命令行参数?

我写了一段代码,将.trc文件从源指令移到备份指令。现在,我已将时间(更旧了多少时间),源路径和备份路径用作此文件的命令行参数。现在,当我从中调用脚本时sh,它可以正常工作。但是在crontab中它不起作用,这让我想知道crontab是否允许传递命令行参数。我的sh命令是:

sh trace_bkp.sh 2 /home/adhikarisubir/test/basic_unix /home/adhikarisubir/test_bkp
Run Code Online (Sandbox Code Playgroud)

其中2定义了2分钟的旧文件,下一个是资源路径,最后一个是目标路径。我在crontab中设置为:

*/5 * * * * sh /home/adhikarisubir/test/basic_unix/trace_bkp.sh 2 /home/adhikarisubir/test/basic_unix /home/adhikarisubir/test_bkp
Run Code Online (Sandbox Code Playgroud)

linux bash shell crontab

5
推荐指数
1
解决办法
2万
查看次数

在aws弹性豆茎上运行cron作业 - django

我无法让我的cron作业执行.

建立:

Django - 1.9

Elastic beanstalk - 运行Python 3.4的64位Amazon Linux 2016.03 v2.1.3

到目前为止,我已尝试过几种方法:

  1. 使用cron.yaml文件:没有碰到其他任何东西 - 只是将cron.yaml文件添加到我的项目根文件夹

    
    version: 1
    cron:
    - name: "test" url: "http://website.com/workers/test" schedule: "*/10 * * * *"
    Run Code Online (Sandbox Code Playgroud)
  2. 使用容器命令和单独的cron.txt文件:

在我的.ebextensions/development.config文件中添加了这一行

05_some_cron:
    command: "cat .ebextensions/crontab.txt > /etc/cron.d/crontab && chmod 644 /etc/cron.d/crontab"
    leader_only: true
Run Code Online (Sandbox Code Playgroud)

在.ebextensions/crontab.txt中

*/10 * * * * source /opt/python/run/venv/bin/activate && python mysite/manage.py test
Run Code Online (Sandbox Code Playgroud)

该应用程序在两种情况下都能成功部署.

  1. 手动(在浏览器中)访问http://website.com/workers/test有预期的结果(在第一种情况下).
  2. 添加source /opt/python/run/venv/bin/activate && python mysite/manage.py test为管理命令会在部署时运行一次正确的脚本.

日志不会在该URL上显示任何GETS.

我究竟做错了什么?我是否错过了流程的一些步骤或EBS上的一些设置步骤?

另外,为EBS托管的django应用程序运行cron作业的最佳方法是什么? - django apps可以在命令行中运行管理命令,如尝试2中所示,也可以通过扩展GET或POST URL来进行尝试1.

django cron amazon-ec2 amazon-elastic-beanstalk

5
推荐指数
2
解决办法
1861
查看次数

如何使用 cron 添加时间戳来记录输出条目?

我正在尝试安排 htcacheclean 使用 cron 每半小时运行一次。服务本身运行良好,但我不知道如何获取时间戳以附加到日志条目本身(而不是 cron-log 文件名)。

我无法在任何地方找到关于如何将时间戳添加到日志条目本身的答案。我只不断看到有关如何将日期时间戳添加到 cron 日志文件名的问题和答案,这不是我想要做的。

crontab -e这就是我现在所拥有的:

0,30  *   *   *   *       /usr/sbin/htcacheclean -v -n -t -p/var/cache/apache/mod_disk_cache -l1M >> /path/to/cron-output.log 2>&1
Run Code Online (Sandbox Code Playgroud)

目前,这就是我的输出打印方式:

Statistics:
size limit 1.0M
total size was 167.4K, total size now 167.4K
total entries was 5, total entries now 5
Run Code Online (Sandbox Code Playgroud)

现在我只需要一个时间戳出现在“统计”之前的日志条目旁边。

编辑:

我正在尝试做的示例:

0000-00-00 00:00:00: Statistics:
size limit 1.0M
total size was 167.4K, total size now 167.4K
total entries was 5, total entries now 5
Run Code Online (Sandbox Code Playgroud)

我想添加年、月、日、时、分、秒。

提前致谢!

解决方案:

我想按照@glenn jackman 的建议在这里添加完整的解决方案。

0,30 …
Run Code Online (Sandbox Code Playgroud)

apache bash cron

5
推荐指数
1
解决办法
1万
查看次数

cron 如何根据日期输出到新的日志文件?

我想将 cron 输出记录到一个过时的文件中—— /tmp/log/cron-2014-12-17.log

$ mkdir /tmp/log
$ chmod 777 /tmp/log
$ ls -lah /tmp/log
drwxrwxrwx 2 root root 4.0K Dec 17 21:51 .
Run Code Online (Sandbox Code Playgroud)

Cron(通过root用户)

* * * * * /usr/bin/php /path/to/script.php > /tmp/log/cron-$(date "+%F").log 2>&1
Run Code Online (Sandbox Code Playgroud)

/tmp/log 每分钟后保持为空。

如果我从命令行手动运行脚本,则会创建一个日志文件,并且输出符合预期。

// Running it manually as a CLI works fine, but not as a cron
$ /usr/bin/php /path/to/script.php > /tmp/log/cron-$(date "+%F").log 2>&1
Run Code Online (Sandbox Code Playgroud)

此外,如果我创建一个文件并 chmod 777 它,cron会将输出写入这个创建的文件。它只是不会即时创建一个。

// Let's create it first
$ touch /tmp/log/cron.log
$ chmod 777 /tmp/log/cron.log …
Run Code Online (Sandbox Code Playgroud)

php cron file-permissions

1
推荐指数
1
解决办法
2890
查看次数