技巧总结-2018-06

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 技巧总结-2018-06

2018.05

grep持续监控Log:

tail -f file | grep --line-buffered my_pattern

列表和deque的区别:

  • 根据index读list,时间复杂度为O(1)但deque是O(n)
  • 在两头插入数据,deque的时间复杂度为O(1), list为O(n)
  • deque是一个双向链表,所以操作头尾非常简单。
  • 随机往中间插入数据,deque与list的时间复杂度都是O(n)

2018.04

MongoDB的聚合查询中,$substr只能匹配ASCII的数据,对于中文要使用$substrCP


Flask的上下文对象current_app只能在请求线程里存在,因此它的生命周期也是在应用上下文里,离开了应用上下文也就无法使用。

app = Flask('__name__')
print(current_app.name)

会报错:

RuntimeError: working outside of application context

此时可以手动创建应用上下文:

with app.app_context():
    print(current_app.name)

扩展AWS的磁盘空间:

点击修改卷增加磁盘配额,SSH进入服务器,输入以下代码:

lsblk  #这条命令用来确定当前可用的磁盘空间小于磁盘配额
sudo growpart /dev/xvda 1
sudo resize2fs /dev/xvda1

再次执行df -h可以看到已经使用了新的空间

2018.03

在Docker查看正在运行的容器是通过什么命令启动的:

docker ps -a --no-trunc

在全新的Ubuntu中安装pip:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

tar压缩文件的时候排除特定文件和文件夹:

tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .

2018.02

在MongoDB使用自带的mongodump备份数据的时候,如果数据库设置了密码,那么在指定mongodump的--password 密码参数的同时,还必须指定--authenticationDatabase admin

2018.01

使用grep持续监控Log:

tail -f file | grep --line-buffered my_pattern

使用rsync通过SSH从服务器拉取数据:

rsync -avzP ubuntu@xx.xxx.xx.xxx:Projects/sample.csv ~/sample.csv

如果有SSH Key的话,使用下面的命令:

rsync -avzP -e "ssh -i ~/sshkey.pem" ubuntu@xx.xxx.xx.xxx:Projects/sample.csv ~/sample.csv

在Ubuntu中修改时区:

sudo timedatectl set-timezone Asia/Shanghai

使用XPath获取名称包含特定字符的属性的属性值:

//span/img/@*[contains(name(), "src")]

AWS在一年免费期间内,换机房不用给钱。先在老的实例生成AMI,再把AMI复制到新的城市,再从新城市的AMI创建实例。然后把老城市的实例彻底终结,取消老城市和新城市的AMI。全程不收费。


在Python中执行Shell命令并获取返回结果:

import subprocess
shell_result = subprocess.check_output('ps -ef | grep 进程名 | grep -v grep', shell=True).decode().strip().split('\n)

如果命令本身没有返回,则会抛出一个subprocess.CalledProcessError


在Shell中判断一个进程是否存在:

if ps -ef | grep 进程名 | grep -v grep > /dev/null
then
    echo "进程存在"
else
    echo "进程不存在"
fi

2017.12

firewalld对特定IP开放特定端口:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="特定IP" port protocol="tcp" port="特定端口" accept'

生成文件树并过滤特定文件或文件夹:

tree -I '__pycache__|pyc|Logs'

统计代码行数:

find . -name "*.py" | xargs wc -l

为pip设置代理:

pip3.6 --proxy http://代理IP:端口 install -r requirements.txt

为Git设置代理:

RUN git config --global http.proxy http://代理IP:端口
RUN git config --global http.sslverify "false"

为Ubuntu的apt-get设置代理:

vim /etc/apt/apt.conf.d/01turnkey

在里面插入一行:

Acquire::http::Proxy "http://your.proxy.here:port/";

保存以后,下一次执行apt-get命令就会使用代理了。

2017.11

修改Elasticsearch默认的数据文件地址到/mnt/es文件夹,需要首先创建这个文件夹,然后为elasticsearch这个用户添加这个文件夹的权限:

Chown -R elasticsearch:elasticsearch /mnt/es/

然后再修改elasticsearch的配置文件。


在postgres中,占位符是$1, $2而不是MySQL中的

2017.10

使用urlpare从URL中获取Host:

>>> from urllib.parse import urlparse
>>> url = 'https://nanjirenlk.tmall.com/shop/view_shop.htm'
>>> x = urlparse(url)>>> x.netloc'nanjirenlk.tmall.com'

解压tar.gz压缩文件:

tar zxvf 文件名

根据进程名字在Linux里杀进程。

ps -ef | grep "进程关键字" | grep -v grep | awk '{print $2}' | xargs kill -9

在Python 的try ... except Exception ...中显示tracebook:

import traceback
try:
    1 + 'a'
except Exception as e:
    tb = traceback.format_exc()
    print(tb)

输出如下:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

这个功能在多层try ... except Exception ... 嵌套的时候特别有用。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
目录
相关文章
|
11天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1243 5
|
10天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1220 87
|
11天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1800 13
|
20天前
|
人工智能 运维 安全
|
4天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
235 127
|
4天前
|
前端开发
Promise的then方法返回的新Promise对象有什么特点?
Promise的then方法返回的新Promise对象有什么特点?
180 2