技巧总结-2018-06

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 技巧总结-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 ... 嵌套的时候特别有用。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
3天前
|
人工智能 弹性计算 API
创意“孵化机”——基于通义万相加速绘画创作流程
阿里云在2023年推出了AI绘画平台**通义万相**,该平台能够根据文本描述生成图像,应用于艺术创作。近期,阿里云优化了通义万相的接入方式,提供API文档和一键部署服务,使得非技术人员也能轻松集成到Web应用中。为促进用户尝试,阿里云还推出了解决方案评测活动,参与者有机会获得奖品。通义万相通过ECS、OSS、VPC和DashScope等云服务支持,简化了技术架构,加速了绘画创作流程。此外,阿里云提供了优惠购买方案,新人享有特别折扣。该服务不仅适用于艺术家,还可应用于多个领域,提高内容生成效率。
70621 10
|
12天前
|
弹性计算 运维 网络安全
上云“加速器”——基于云效流水线快速上线企业门户网站
阿里云提出使用云效将项目代码部署到ECS,快速构建企业门户网站。该方案融合云原生技术和持续交付,通过云效流水线简化从开发到部署的全过程,实现快速迭代。文章详细阐述了技术架构,包括客户端、云解析DNS、VPC、ECS等组件,以及部署流程,包括准备阶段、部署网站服务、解析域名和可选的静态资源加速。此外,还介绍了如何使用云效平台创建流水线,实现自动化构建与部署,以及如何通过一键部署简化流程。整个方案旨在降低运维成本,提高速度和灵活性,同时提供域名备案和SSL证书配置的指导。
194558 73
上云“加速器”——基于云效流水线快速上线企业门户网站
|
11天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!
|
11天前
|
机器学习/深度学习 算法 开发工具
通义千问2(Qwen2)大语言模型在PAI-QuickStart的微调、评测与部署实践
阿里云的人工智能平台PAI,作为一站式的机器学习和深度学习平台,对Qwen2模型系列提供了全面的技术支持。无论是开发者还是企业客户,都可以通过PAI-QuickStart轻松实现Qwen2系列模型的微调、评测和快速部署。
|
13天前
|
人工智能 机器人 API
用AppFlow玩转通义百炼大模型应用
阿里云百炼平台提供一站式大模型开发服务,支持创建和定制应用,预置丰富插件和API。用户可以通过平台快速构建大模型应用,并利用AppFlow将其接入钉钉群聊,以AI卡片形式展示。
72875 3
|
11天前
|
存储 网络协议 安全
阿里云hpc8ae实例商业化发布详解
近日,全球领先的云计算厂商阿里云宣布最新HPC优化实例hpc8ae的正式商业化,该实例依托阿里云自研的「飞天+CIPU」架构体系,搭载第四代AMD EPYC处理器,专为高性能计算应用优化,特别适用于计算流体、有限元分析、多物理场模拟等仿真类应用,CAE场景下的性价比最少提升50%。
|
12天前
|
SQL 搜索推荐 OLAP
Flink 流批一体场景应用及落地情况
本文由阿里云 Flink 团队苏轩楠老师撰写,旨在介绍 Flink 流批一体在几个常见场景下的应用。
67314 1
Flink 流批一体场景应用及落地情况
|
12天前
|
Kubernetes 测试技术 应用服务中间件
基于 Nginx Ingress + 云效 AppStack 实现灰度发布
本文将演示结合云效 AppStack,来看下如何在阿里云 ACK 集群上进行应用的 Ingress 灰度发布。
64504 16
|
12天前
|
SQL 数据采集 DataWorks
DataWorks重磅推出全新资源组2.0,实现低成本灵活付费和动态平滑扩缩容
DataWorks资源组2.0上线,提供低成本、动态扩缩容的数据计算资源服务。
53763 5
DataWorks重磅推出全新资源组2.0,实现低成本灵活付费和动态平滑扩缩容
|
13天前
|
机器学习/深度学习 Kubernetes 算法框架/工具
容器服务 ACK 大模型推理最佳实践系列一:TensorRT-LLM
在 ACK 中使用 KServe 部署 Triton+TensorRT-LLM