小编Luv*_*eet的帖子

什么是稀疏文件,为什么需要它?

什么是稀疏文件,为什么需要它?我唯一能得到的是它是一个非常大的文件,它是高效的(千兆字节).效率如何?

filesystems system file disk sparse-file

13
推荐指数
2
解决办法
6301
查看次数

Django'AnonymousUser'对象没有属性'_meta'

我在我的Django应用程序中使用社交登录.所以,我在我的settings.py文件中添加了额外的后端.

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'social_core.backends.open_id.OpenIdAuth',
    'social_core.backends.google.GoogleOpenId',
    'social_core.backends.google.GoogleOAuth2',
    'social_core.backends.google.GoogleOAuth',
    'social_core.backends.twitter.TwitterOAuth',
    'social_core.backends.facebook.FacebookOAuth2',
    'social_core.backends.github.GithubOAuth2',
Run Code Online (Sandbox Code Playgroud)

]

我也用于UserCreationForm注册,

class SignupForm(UserCreationForm):
    first_name = forms.CharField(max_length=30, required=True, help_text='Required.')
    last_name = forms.CharField(max_length=30, required=True, help_text='Required.')
    email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')

    class Meta:
        model = User
        fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2' )
Run Code Online (Sandbox Code Playgroud)

这是视图文件,

def signup(request):
    if request.method == 'POST':
        form  = SignupForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_pass = form.cleaned_data.get('password')
            user = authenticate(request, username=username, password=raw_pass)
            login(request,user,backend='django.contrib.auth.backends.ModelBackend')
            url = …
Run Code Online (Sandbox Code Playgroud)

python django

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

Filebeat vs Rsyslog用于转发日志

我目前正在使用filebeat将日志转发到logstash,然后转发到elasticsearch.

现在,我正在考虑通过rsyslog将日志转发到logstash.这样做的好处是,我不需要在每台服务器上安装和配置filebeat,而且我也可以转发JSON格式的日志,这种格式易于解析和过滤.

我可以使用TCP/UDP通过rsyslog将日志转发到logstash.

我想知道rsyslog优于filebeat的优点和缺点,包括性能,可靠性和易用性.

rsyslog elasticsearch logstash filebeat

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

django-celery:bind=True 失败,需要 2 个位置参数,但给出了 3 个

如果 celery 任务失败,我会尝试重试它。这是我的任务,

@shared_task(queue='es', bind=True, max_retries=3)
def update_station_es_index(doc_id, doc_body):
    """
    Celery consumer method for updating ES.
    """
    try:
        #es_client is connecting to ElasticSearch
        es_client.update_stations(id=doc_id, body=doc_body)
    except Exception as e:
        self.retry(exc=e)
Run Code Online (Sandbox Code Playgroud)

但是在调用此任务时出现此错误,

TypeError: update_station_es_index() takes 2 positional arguments but 3 were given
Run Code Online (Sandbox Code Playgroud)

我没有在网上找到足够的帮助来解决这个错误,只是这个 github 问题,但这并不能解释太多。

谁能告诉我发生了什么以及这里的解决方案是什么?

使用 Django2.0.5 和 celery4.2.0

django python-3.x django-celery

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

在 postgres 查询中获取第一行

我正在使用内部联接从 2 个表中查询一些数据。

这是查询,

test_db=> select api_booking.install_ts, api_user.id from api_booking inner join api_user on api_booking.user_id=api_user.id and api_booking.status='completed' limit 20 ; 
          install_ts           | id 
-------------------------------+----
 2016-09-15 09:53:42.511367+00 |  9
 2016-10-12 11:37:11.438715+00 |  9
 2016-10-21 08:55:49.57813+00  |  9
 2017-02-27 06:12:17.362996+00 |  9
 2017-02-27 06:24:59.316051+00 |  9
 2017-02-28 06:15:35.00841+00  |  9
 2017-02-28 06:34:57.766365+00 |  9
 2017-05-23 14:40:54.831525+00 | 14
 2017-06-05 07:47:39.78306+00  | 17
 2017-06-05 07:55:30.171103+00 | 17
 2016-12-06 06:47:43.860581+00 | 19
 2016-09-09 07:34:58.40589+00  | 20
 2016-11-16 09:09:24.466439+00 | 24
 2016-10-03 02:52:24.419793+00 | 24 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql inner-join greatest-n-per-group

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

AWS EKS:服务(LoadBalancer)正在运行但不响应请求

我正在使用 AWS EKS。我已经在 kubernetes 集群中的 gunicorn 的帮助下启动了我的 django 应用程序。

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: api
  labels:
    app: api
    type: web
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: api
        type: web
    spec:
      containers:
      - name: vogofleet
        image: xx.xx.com/api:image2
        imagePullPolicy: Always
        env:
        - name: DATABASE_HOST
          value: "test-db-2.xx.xx.xx.xx.com"
        - name: DATABASE_PASSWORD
          value: "xxxyyyxxx"
        - name: DATABASE_USER
          value: "admin"
        - name: DATABASE_PORT
          value: "5432"
        - name: DATABASE_NAME
          value: "test"
        ports:
        - containerPort: 9000
Run Code Online (Sandbox Code Playgroud)

我已经应用了这些更改,并且可以看到我的 pod 正在运行 kubectl get pods

现在,我试图通过服务对象公开它。这是我的服务对象,

# service …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes kubernetes-service amazon-eks

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

使用哪个模块编辑文件 - Ansible

我想编辑telegraf(系统指标收集代理)的配置文件.

Telegraf带有一个可以编辑的默认配置文件.其中定义了许多输入和输出插件,这些插件已注释掉,可以通过删除注释添加,也可以自定义.

我只想编辑那里定义的一些插件,而不是全部.例如,考虑这是文件,

[global]
  interval='10s'

[outputs.influxdb]
  host=['http://localhost:8086']

#[outputs.elasticsearch]
#  host=['http://localhost:9200']

[inputs.netstat] 
  interface='eth0'
Run Code Online (Sandbox Code Playgroud)

现在,我想编辑3个块global,outputs.influxdbinputs.netstat.我不想编辑,outputs.elasticsearch但也希望该块outputs.elasticsearch应保留在文件中.

当使用Ansible时,我首先使用了模板模块,但是如果我使用它,那么评论的数据将会丢失.

然后我使用ini_file模块,而不是编辑已经存在的块,它添加了一个新块,即使它已经存在,并导致类似这样的事情,

[outputs.influxdb]
 host=[http://localhost:8086]
[outputs.influxdb]
 host=[http://xx.xx.xx.xx:8086]
Run Code Online (Sandbox Code Playgroud)

哪个模块适用于我的场景?

ansible

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

Django:login_redirect_url 不起作用

我已经编写了自己的登录和注销视图。

我正在使用LOGIN_REDIRECT_URL设置重定向页面。

我的登录视图相当简单:

def todologin(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=password)
            login(request, user)
            url = reverse('pilot:home')
            return HttpResponseRedirect(url)
    else:
        form = LoginForm()
    return render(request, 'login.html', {'form':form})

@login_required
def home(request):
Run Code Online (Sandbox Code Playgroud)

@login_required在我的主页上使用。

这是 的值LOGIN_REDIRECT_URL

LOGIN_REDIRECT_URL = '/login/'
# tried this one too, LOGIN_REDIRECT_URL = 'pilot:login'
Run Code Online (Sandbox Code Playgroud)

我的应用程序的 urls.py:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^signup/', views.signup),
    url(r'^home/', views.home, name='home'), …
Run Code Online (Sandbox Code Playgroud)

python django

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

Ansible:在 postgres 中将角色附加到用户

我已经在 Postgres 中扮演了一个角色readonly。它对所有数据库中的所有表具有只读访问权限。

我想将此角色附加给用户,以便他/她也可以通过一个命令获得对所有表的只读访问权限。如何使用 ansible 的 postgresql_user 模块执行以下命令?

mydb=> grant readonly to dev_username;
Run Code Online (Sandbox Code Playgroud)

编辑:添加更多细节

这是我尝试过的,

- name: Postgres
  postgresql_user:
    login_host: xx.xx.com
    login_password: mypassword
    login_user: myuser
    db: mydb
    name: dev_username
    password: mypassword
    priv: "readonly"
    expires: infinity
    state: present
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误,

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: __main__.InvalidPrivsError: Invalid privs specified for database: READONLY
fatal: [127.0.0.1]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"/var/folders/h1/w57gk9nx0xl8j6xb_cqv3wb00000gn/T/ansible_2ema8gl3/ansible_module_postgresql_user.py\", line 855, in …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-2.x

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

剧本中的Vars_prompt

这是我的剧本,

---
- hosts: alpha
  vars:
  company: vogo
  tasks:
     - name: debugging
       debug:
         msg: "{{ansible_hostname}}"
  vars_prompt:
     - name: "company"
       prompt: "Where do you work"
       private: no

- hosts: webservers
  vars_prompt:
     - name: "fathercompany"
       prompt: "Where your father works"
       private: no
  tasks:
     - name: test
       debug:
         msg: just testing "{{company2}}"
Run Code Online (Sandbox Code Playgroud)

以下是我运行playbook时执行流程的步骤,

1 - 提示1(你在哪里工作)

2 - 任务调试

3 - 提示2(你父亲的工作地点)

4 - 任务测试

我有一些问题.

首先,当我运行这个剧本时,首先应该运行"调试"任务,然后提示应该询问公司名称.但是,当我运行这个剧本时,在第一步,它会询问"你在哪里工作?".为什么先提示?我错过了某种我应该通过的参数吗?

其次,我在这里提出2个提示,

我想companywebservers主机块中使用提示值.但是当我尝试这样做时,它给了我错误.

我不能将一个主机块中的提示值用于另一个主机块吗?

第三,

如何在角色中使用提示?

ansible

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

在拆分操作上标记不同的行

我在我的一个领域使用拆分.

它分为不同的行.

在此输入图像描述

如果我使用.label('something'),则每行具有相同的名称.但我想给每一行一个不同的名字.

如何用不同的名称标记每一行?

elasticsearch kibana timelion

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

django:当2个字段具有相同值时过滤查询集

我有一个模型有2个字段,如,

pickup_station_id = models.IntegerField(null=True)
drop_station_id = models.IntegerField(null=True)
Run Code Online (Sandbox Code Playgroud)

我想要一个admin中的过滤器,它可以根据以下内容过滤查询集:

  • 拾取和下降ID是不同的
  • 拾取和下降ID是相同的

如何根据这些条件获取查询集?

我的意思是,像这样的,

Mymodel.objects.filter(pickup_station_id==drop_station_id)

Mymodel.objects.filter(pickup_station_id!=drop_station_id)
Run Code Online (Sandbox Code Playgroud)

python django django-models

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

django:在后台更新模型

我有一个叫预订的模型。它具有start_timeend_time字段。它也有一个is_active领域。

现在,假设预订有start_time = 2017/Nov/22 12:00:00end_time = 2017/Nov/22 14:00:00

现在,当服务器崩溃时,

1-如果当前时间在开始时间和结束时间之间,则is_active应该为True。

2-当前时间大于end_time或小于预订的start_time,我要设置is_active = False。

我希望它在后台连续运行,以便它必须在数据库中实时保持预订is_active状态。如何在django中做到这一点?

python django django-models

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