小编ger*_*ion的帖子

scl启用python27 bash

我遇到了一个shell脚本,它打算在Redhat 6服务器上每隔30分钟在cron上运行一次.shell脚本基本上只是一个运行python脚本的命令.

服务器上的本机版本python是2.6.6,但是这个特定脚本所需的python版本是python 2.7+.我可以使用"scl"命令在命令行上轻松运行它(此示例包含用于显示版本更改的python -V命令):

$ python -V
Python 2.6.6
$ scl enable python27 bash
$ python -V
Python 2.7.3
Run Code Online (Sandbox Code Playgroud)

此时我可以在命令行上运行python 2.7.3脚本没问题.

这是障碍.

当您发出scl enable python27 bash命令时,它会启动一个新的bash shell会话,该会话(再次)适用于交互式命令行工作.但是当在shell脚本中执行此操作时,只要它运行bash命令,脚本就会因新会话而退出.

这是失败的shell脚本:

#!/bin/bash
cd /var/www/python/scripts/
scl enable python27 bash
python runAllUpserts.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

它只是在它到达第4行时就会停止,因为"bash"将它从脚本中弹出并进入一个新的bash shell.所以它永远不会看到我需要它运行的实际python命令.

另外,如果每30分钟运行一次,这将每次添加一个新的bash,这是另一个问题.

由于几个原因,我不愿意立即将服务器上的本机python版本更新为2.7.3.Redhat yum repos还没有python 2.7.3,手动安装将在yum更新系统之外.根据我的理解,yum本身运行在python 2.6.x上.

这是我找到使用scl的方法的地方

http://developerblog.redhat.com/2013/02/14/setting-up-django-and-python-2-7-on-red-hat-enterprise-6-the-easy-way/

bash cron software-collections

23
推荐指数
4
解决办法
3万
查看次数

Laravel Sessions 数据库表填充了 user_agent ELB-HealthChecker/2.0 健康检查

我正在准备我的 Laravel 5.5 生产环境以在弹性负载均衡器 (ELB) 后面的多个 AWS EC2 实例上运行。所有共享数据,如图像、css、js 都存储在 S3 上,日志流式传输到 CloudWatch,数据库在 RDS 上。会话和缓存已配置为使用数据库。

一切都很好,除了我看到会话表用 user_agent "ELB-HealthChecker/2.0" 填满了数千个 ELB 健康检查。Laravel/PHP 显然将每个健康检查视为一个新用户并生成一个新会话,每个实例每 30 秒一个。这可能会很快失控,并且不可持续。

所以我的问题是...... Laravel 中是否有一种方法可以忽略或拒绝来自特定 user_agents 的请求,以便他们不启动会话?我可以编写一个 shell 脚本来定期删除记录,但这似乎是不必要的黑客攻击。

mysql session user-agent amazon-ec2 laravel

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