- ansible的安装、使用
ytym00
简介高度模块化,调用特定的模块,完成特定的任务,基于Yaml,来完成批量任务的模板化,来支持playbook。基于Python语言实现,主要使用Paramiko、PyYAML和JinJa2三个关键模块,部署简单(agentless),主从模式,支持自定义模块,支持playbook,幂等性:允许重复执行N次,没有变化时,只会执行第一次。特点:1、Configuration(cfengine,chef
- python离线安装pip
于光yuguang
pythonpip开发语言
如果您的服务器没有互联网连接,您仍然可以通过其他方式将pip安装到服务器上。以下是一种可能的方法:方法一:离线安装下载pip安装文件:在另一台联网的计算机上,下载pip的安装文件(.whl文件)以及其依赖项的安装文件(如果有)。可以从PyPI下载pip的.whl文件。传输文件:将下载的.whl文件和依赖项文件通过USB等方式传输到没有互联网的服务器上。安装pip:在服务器上,使用pip的安装文件进
- ansible入门
打败404
运维linuxansible
一、ansible简介1、ansible是什么?ansible是目前最受运维欢迎的自动化运维工具,基于Python开发,集合了众多运维工具(SaltStackpuppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于paramiko开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模
- 【已解决】如何打开ftp文件合集
moz与京
2024年报错/问题等整理服务器运维计算机网络
别人分享了一个文件夹,说需要的文件就在ftp://xx.xx.x.xxx:xxxx下面的文件目录中,一下子看蒙了。本来以为是常见的链接,但是发现开头是ftp协议。深感困惑,上网搜索以后才知道:"FTP(FileTransferProtocol,文件传输协议)是一种用于在计算机网络上进行文件传输的标准协议。它主要用于在客户端和服务器之间传输文件。以下是一些关于FTP协议的关键知识点:1.基本概念:F
- vue+jsonrpc+mongoDB文件传输解决方案(任意格式文件)
weideng_san
前端java文件传输jsonrpcmongoDBvue
环境及需求:前端采用vue;后端采用spring,但是只用到了spring的对象注入功能,未使用springweb相关功能。前后端通信采用jsonrpc,现需要在前端选中文件(格式未知,上传到后端,后端将其存储在mongoDB中)。背景:springweb可以直接使用controller接受MultipartFile对象;但是jsonrpc不能直接传输文件类型,jsonrpc是轻量级通信框架,擅长
- paramiko出现CryptographyDeprecationWarning
士大夫11123
pythonparamiko
paramiko出现CryptographyDeprecationWarning解决方法:卸载当前cryptography版本pipuninstallcryptography2.5(2.6…)安装2.4.2版本pipinstallcryptography2.4.2
- paramiko CryptographyDeprecationWarning
weixin_34228387
报错如图:解决:importwarningswarnings.filterwarnings(action='ignore',module='.*paramiko.*')复制代码详细可以看:github.com/ansible/ans…
- python paramiko CryptographyDeprecationWarning
三支烟
pythonparamiko
importparamikoclient=paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())#允许连接不在know_hosts文件中的主机。client.connect(serverIp,port=serverPort,username=serverUser)报警告如下:paramiko\
- Python2中Paramiko模块遇到CryptographyDeprecationWarning的解决方法
lishixiongbishe
java
使用Python2的paramiko模块,写了一个简单的ssh登录主机执行命令的脚本,发现每次执行都有一个报错:/data/sshenv/lib/python2.7/site-packages/paramiko/transport.py:33:CryptographyDeprecationWarning:Python2isnolongersupportedbythePythoncoreteam.S
- paramiko和cryptography的关系
0914_h
安全python3cryptography
1、错误:fromcryptography.hazmat.bindings._constant_timeimportlibModuleNotFoundError:解答:先安装:sudoapt-getinstalllibffi-dev之后安装:sudopip3installcryptographysudoapt-getinstallopenssl还得安装:pipinstallparamiko2、
- CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.alg
L202134870
python
出现这个问题可以降低cryptography的版本,如将43.0.0改为42.0.0ModuleNotFoundError:Nomodulenamed'paramiko.py3compat'paramiko版本过高,可指定版本安装pipinstallparamiko-2.11.0
- 使用RestTemplate调用其他项目接口传输文件 okhttp
謦潇的小弟
okhttpjava开发语言
文章目录使用RestTemplate调用其他项目接口传输文件一、配置maven依赖yml配置启动类controller调用远程项目的接口传输字符串使用RestTemplate调用其他项目接口传输文件目的:远程调用其他项目的接口传输参数:文件类型–字符串一、配置maven依赖com.squareup.okhttp3okhttp3.9.0org.springframework.cloudspring-
- Linux文件共享
写代码的小阿帆
运维linux运维服务器
FTPtcp协议的传输文件标准,安装方法yuminstall-yvsftpd,使用systemctlstartvsftpd开启服务,使用setenforce0和systemctlstopfirewalld关闭SELinux和防火墙,避免对ftp协议的干扰。客户端使用yum-yinstallftp安装ftp组件,使用时直接ftp目的ip即可建立ftp链接。配置文件在/etc/vsftpd/vsftp
- Windows2000域控制器默认端口的列表
deflag
windows网络管理windowsinternet服务器microsoft网络iis
Windows2000域控制器默认端口的列表来源:互连网作者:佚名时间:2005-10-20点击:75521/TCP(传输控制协议)--FTP该文件传输协议(FTP)服务器是Internet信息服务(IIS)的一部分,通过IIS管理工具管理。FTP是一种在两台联网的计算机之间传输文件和使用户能够方便使用远程文件存储功能的常用方法。25/TCP--SMTP该简单邮件传输协议(SMTP)服务通过IIS
- java ftp主动模式和被动模式_什么是ftp主动模式和被动模式
weixin_39904809
javaftp主动模式和被动模式
FTP是文件传输协议的简称,ftp传输协议有着众多的优点所以传输文件时使用ftp协议的软件很多,ftp协议使用的端口是21(也称为控制端口),其实还有一个数据端口20,根据FTP工作方式的不同,数据端口也不都是20,主动模式的被动模式使用的数据端口是不一样的,下面我就一步一步介绍主动ftp模式和被动ftp模式的区别:一、什么是主动FTP主动模式的FTP工作原理:客户端从一个任意的非特权端口N连接到
- ftp协议主动模式与被动模式
是星星鸭
网络通讯服务器网络
FTP主动模式与被动模式主动模式:客户端给服务端的21控制端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会连接客户端已打开的那个数据端口把东西传给客户端,这就是主动模式,可以理解为服务端主动给客户端传输文件。被动模式:客户端给服务器端的21端口发命令说,我要下载什么什么,服务端知道后,就打开一个空闲的端口,然后告诉客户端,我已经打开了某
- Centos安装netcat
羋学僧
Centos安装netcatnetcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。安装下载
- 什么是SSH?它有什么作用?
云夏之末
服务器运维网络协议
SSH(SecureShell)是一种网络协议,用于在不安全的网络上安全地访问和管理远程计算机。它通过加密通信确保数据的安全性,并提供了一种可靠的方式来执行远程命令、传输文件以及进行系统管理。SSH的主要功能包括:1.远程登录SSH允许用户安全地登录到远程计算机,并在该计算机上执行命令。与传统的Telnet不同,SSH提供了加密通道,保护了用户的登录凭据和会话内容,防止了窃听和中间人攻击。示例命令
- python操作服务器
Enougme
python
一:使用paramiko进行SSH连接首先确保已安装paramiko库:pipinstallparamiko代码示例在这里插入代码片importparamikohostname='hostname'username='user'password='passwd'client=paramiko.SSHClient()client.set_missing_host_key_policy(paramik
- 强大的安卓文件传输工具:Android File Transfer for Mac
平安喜乐616
macosandroidAndroidFileTransfer安卓文件传输安卓文件传输工具
AndroidFileTransferforMac是一款专为Mac用户开发的安卓文件传输工具。它提供了一种无缝连接Mac电脑与安卓设备的方式,使我们能够轻松地在两者之间传输文件。不管是照片、音乐、视频还是文档,我们都可以通过这个工具将它们从安卓设备传输到Mac电脑上,或者反过来。这为我们提供了极大的便利,不再需要通过电子邮件、云存储或其他复杂的方式来管理我们的文件。除了简单易用之外,Android
- python_readlines()
axingmeng5124
运维python
#-*-coding:gbk-*-importparamikoimportstringimportressh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect("XX.XX.XX.XX",22,"root","mima")stdin,stdout,stderr=ssh.e
- Python - SFTP实现网络设备下载/上传
来看帽子变戏法
Pythonpython自动化
##利用Python实现设备的上传/下载importparamiko#引入模块fromdatetimeimportdatetimeimportospath_files=r"file"#定义一个路径ifnotos.path.exists(path_files):#判断当前路径下是否存在这个文件os.mkdir(path_files)#如果不存在则创建time_now=datetime.now()#获
- Linux网络瑞士军刀 nc(netcat)
@新法
硬核小餐linux网络运维
1.命令简介nc(netcat)是一个短小精悍、功能实用、简单可靠的网络工具,主要有如下作用:(1)端口侦听,nc可以作为server以TCP或UDP方式侦听指定端口;(2)端口扫描,nc可以作为client发起TCP或UDP请求;(3)机器之间传输文件;(4)机器之间网络测速。2.命令格式nc[-46DdhklnrStUuvzC][-iinterval][-psource_port][-ssou
- 自动化运维工具----Ansible入门详解
效好飞
自动化运维工具运维自动化ansible
一、Ansible简介什么是Ansible?1.ansible是新出现的自动化运维工具,基于python开发,集合了从多的运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。2.ansible是基于paramiko开发的,并且基于模块化工作,它本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只
- 【linux命令】-scp远程拷贝文件的命令scp使用
穿山甲yyds
linux运维服务器
【linux命令】-scp远程拷贝文件的命令scp使用scp是securecopy的简写一、常用情况场景:2台机器间传输文件A服务器.10.17.125.75,B服务器.56.231.34.73例如1:在A服务器上,拷贝B服务器上的文件到A服务器#在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下
[email protected]:/hom
- SolarWinds供应链攻击事件带来的启示
SECISLAND安全官
一、概述2020年12月13日,美国网络安全公司FireEye发布分析报告称,SolarWinds旗下的Orion基础设施管理平台的发布环境遭到黑客组织UNC2452入侵,黑客对文件SolarWinds.Orion.Core.BusinessLayer.dll的源码进行篡改添加了后门代码,该文件具有合法数字签名会伴随软件更新下发,这些后门会执行命令,包括传输文件、执行文件、分析系统、重启设备和禁用
- Python脚本自动化运维网络设备
胖_嘟_嘟
运维自动化服务器python
编写python程序,从配置脚本中读取对应的文件内容,使用ssh的方式将配置发送到设备并保存。配置脚本中存放你想要在每台设备上进行配置的命令importparamikoimporttimefromdevice_info_01import*#创建一个存放设备信息的文件,导入到此文件中foriteminrange(len(datebase)):#datebase是在device_info_01中创建的
- vue自动部署项目到服务器
想要的功能前端打包之后自动上传文件夹到服务器在不提交代码的前提下,也可以完成上述功能经过各种百度谷歌,最后有两种方案可以选择第一种是写一个shell,通过lftp上传文件夹,但是会有个权限的问题,需要更改nginx配置才可以解决第二种就是使用node来实现,个人推荐使用这个第三种就是jenkins,但是我又不想提交代码,不满足,放弃使用shell自动传输文件夹到服务器思路1.安装lftp2.编写s
- 计算机网络——10FTP
Aubyn11
计算机网络计算机网络网络
FTPFTP:文件传输协议向远程主机上传输文件或从远程主机接收文件客户/服务器模式客户端:发起传输的一方服务器:远程主机ftp:RFC959ftp服务器:端口号为21FTP:控制连接与数据连接分开控制连接FTP客户端与FTP服务器通过端口21联系,并使用TCP为传输协议客户端通过控制连接获得身份确认客户端通过控制连接发送命令浏览远程目录数据连接收到一个文件传输命令时,服务器打开一个到客户端的数据连
- python 通过ssh增量同步文件夹
三希
pythonsshwindows
要通过SSH使用Python进行文件夹的增量同步,你可以使用paramiko库来创建SSH连接并执行文件传输操作。paramiko是一个Python实现的SSHv2协议库,可以用于进行SSH连接、文件传输等任务。以下是一个简单的示例,展示如何使用paramiko进行增量同步:importosimportparamikoimporthashlibdefcalculate_md5(file_path)
- eclipse maven
IXHONG
eclipse
eclipse中使用maven插件的时候,运行run as maven build的时候报错
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
可以设一个环境变量M2_HOME指
- timer cancel方法的一个小实例
alleni123
多线程timer
package com.lj.timer;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer extends TimerTask
{
private int a;
private Timer timer;
pub
- MySQL数据库在Linux下的安装
ducklsl
mysql
1.建好一个专门放置MySQL的目录
/mysql/db数据库目录
/mysql/data数据库数据文件目录
2.配置用户,添加专门的MySQL管理用户
>groupadd mysql ----添加用户组
>useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户
3.配置,生成并安装MySQL
>cmake -D
- spring------>>cvc-elt.1: Cannot find the declaration of element
Array_06
springbean
将--------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3
- maven发布第三方jar的一些问题
cugfy
maven
maven中发布 第三方jar到nexus仓库使用的是 deploy:deploy-file命令
有许多参数,具体可查看
http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html
以下是一个例子:
mvn deploy:deploy-file -DgroupId=xpp3
- MYSQL下载及安装
357029540
mysql
好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址
- ios TableView cell的布局
张亚雄
tableview
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:[indexPath row]]];
CGSize itemSize = CGSizeMake(60, 50);
&nbs
- Java编码转义
adminjun
java编码转义
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final Strin
- Tomcat 配置和spring
aijuans
spring
简介
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。
Server.xml -- tomcat主
- Java打印当前目录下的所有子目录和文件
ayaoxinchao
递归File
其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。
import java.io.File;
/**
* @author Perlin
* @date 2014-6-30
*/
public class PrintDirectory {
public static void printDirectory(File f
- linux安装mysql出现libs报冲突解决
BigBird2012
linux
linux安装mysql出现libs报冲突解决
安装mysql出现
file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686
- jedis连接池使用实例
bijian1013
redisjedis连接池jedis
实例代码:
package com.bijian.study;
import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoo
- 关于朋友
bingyingao
朋友兴趣爱好维持
成为朋友的必要条件:
志相同,道不合,可以成为朋友。譬如马云、周星驰一个是商人,一个是影星,可谓道不同,但都很有梦想,都要在各自领域里做到最好,当他们遇到一起,互相欣赏,可以畅谈两个小时。
志不同,道相合,也可以成为朋友。譬如有时候看到两个一个成绩很好每次考试争做第一,一个成绩很差的同学是好朋友。他们志向不相同,但他
- 【Spark七十九】Spark RDD API一
bit1129
spark
aggregate
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
//测试RDD的aggregate方法
object AggregateTest {
def main(args: Array[String]) {
val conf = new Spar
- ktap 0.1 released
bookjovi
kerneltracing
Dear,
I'm pleased to announce that ktap release v0.1, this is the first official
release of ktap project, it is expected that this release is not fully
functional or very stable and we welcome bu
- 能保存Properties文件注释的Properties工具类
BrokenDreams
properties
今天遇到一个小需求:由于java.util.Properties读取属性文件时会忽略注释,当写回去的时候,注释都没了。恰好一个项目中的配置文件会在部署后被某个Java程序修改一下,但修改了之后注释全没了,可能会给以后的参数调整带来困难。所以要解决这个问题。
&nb
- 读《研磨设计模式》-代码笔记-外观模式-Facade
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 百度百科的定义:
* Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,
* 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面
*
* 可简单地
- After Effects教程收集
cherishLC
After Effects
1、中文入门
http://study.163.com/course/courseMain.htm?courseId=730009
2、videocopilot英文入门教程(中文字幕)
http://www.youku.com/playlist_show/id_17893193.html
英文原址:
http://www.videocopilot.net/basic/
素
- Linux Apache 安装过程
crabdave
apache
Linux Apache 安装过程
下载新版本:
apr-1.4.2.tar.gz(下载网站:http://apr.apache.org/download.cgi)
apr-util-1.3.9.tar.gz(下载网站:http://apr.apache.org/download.cgi)
httpd-2.2.15.tar.gz(下载网站:http://httpd.apac
- Shell学习 之 变量赋值和引用
daizj
shell变量引用赋值
本文转自:http://www.cnblogs.com/papam/articles/1548679.html
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
需要给变量赋值时,可以这么写:
- Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)
dcj3sjt126com
javajdk
Java SE 第一讲:
Java SE:Java Standard Edition
Java ME: Java Mobile Edition
Java EE:Java Enterprise Edition
Java是由Sun公司推出的(今年初被Oracle公司收购)。
收购价格:74亿美金
J2SE、J2ME、J2EE
JDK:Java Development
- YII给用户登录加上验证码
dcj3sjt126com
yii
1、在SiteController中添加如下代码:
/**
* Declares class-based actions.
*/
public function actions() {
return array(
// captcha action renders the CAPTCHA image displ
- Lucene使用说明
dyy_gusi
Lucenesearch分词器
Lucene使用说明
1、lucene简介
1.1、什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像baidu或者googleDesktop那种拿来就能用,它只是提供了一种工具让你能实现这些产品和功能。
1.2、lucene能做什么
要回答这个问题,先要了解lucene的本质。实际
- 学习编程并不难,做到以下几点即可!
gcq511120594
数据结构编程算法
不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路。编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解。作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦。
1、确定目标
学习编程语言既充满乐趣,又充满挑战。有些花费多年时间学习一门编程语言的大学生到
- Java面试十问之三:Java与C++内存回收机制的差别
HNUlanwei
javaC++finalize()堆栈内存回收
大家知道, Java 除了那 8 种基本类型以外,其他都是对象类型(又称为引用类型)的数据。 JVM 会把程序创建的对象存放在堆空间中,那什么又是堆空间呢?其实,堆( Heap)是一个运行时的数据存储区,从它可以分配大小各异的空间。一般,运行时的数据存储区有堆( Heap)和堆栈( Stack),所以要先看它们里面可以分配哪些类型的对象实体,然后才知道如何均衡使用这两种存储区。一般来说,栈中存放的
- 第二章 Nginx+Lua开发入门
jinnianshilongnian
nginxlua
Nginx入门
本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章:
nginx启动、关闭、重启
http://www.cnblogs.com/derekchen/archive/2011/02/17/1957209.html
agentzh 的 Nginx 教程
http://openresty.org/download/agentzh-nginx-tutor
- MongoDB windows安装 基本命令
liyonghui160com
windows安装
安装目录:
D:\MongoDB\
新建目录
D:\MongoDB\data\db
4.启动进城:
cd D:\MongoDB\bin
mongod -dbpath D:\MongoDB\data\db
&n
- Linux下通过源码编译安装程序
pda158
linux
一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在linux下用man命令查看的命令的文档
二、linux下程序的存放目录 linux程序的存放目录大致有三个地方: /etc, /b
- WEB开发编程的职业生涯4个阶段
shw3588
编程Web工作生活
觉得自己什么都会
2007年从学校毕业,凭借自己原创的ASP毕业设计,以为自己很厉害似的,信心满满去东莞找工作,找面试成功率确实很高,只是工资不高,但依旧无法磨灭那过分的自信,那时候什么考勤系统、什么OA系统、什么ERP,什么都觉得有信心,这样的生涯大概持续了约一年。
根本不是自己想的那样
2008年开始接触很多工作相关的东西,发现太多东西自己根本不会,都需要去学,不管是asp还是js,
- 遭遇jsonp同域下变作post请求的坑
vb2005xu
jsonp同域post
今天迁移一个站点时遇到一个坑爹问题,同一个jsonp接口在跨域时都能调用成功,但是在同域下调用虽然成功,但是数据却有问题. 此处贴出我的后端代码片段
$mi_id = htmlspecialchars(trim($_GET['mi_id ']));
$mi_cv = htmlspecialchars(trim($_GET['mi_cv ']));
贴出我前端代码片段:
$.aj