首页 文章 精选 留言 我的

精选列表

搜索[linux],共10008篇文章
优秀的个人博客,低调大师

LINUX部署- MYSQL - 安装

步骤 1 : 下载yum上mysql的资源有问题,所以不能仅仅之用yum。在使用yum之前还需要用其他命令获取mysql社区版 cd /tmp rpm -ivh mysql-community-release-el7-5.noarch.rpm 步骤 2 : 通过yum进行安装 顶 折 接着就可以通过yum安装了: yum install mysql mysql-server mysql-devel -y 通过yum进行安装 步骤 3 : 启动 顶 折以上只是安装,执行如下命令才能启动mysql服务器: systemctl start mysql.service 步骤 4 : 验证 顶 折安装后会自动启动,启动后会占用3306端口。 使用如下命令查看3306端口是否启动,如果启动了则表示mysql处于运行状态。更多参阅云数据库文档 netstat -anp|grep 3306 阿里云服务器:活动地址 购买可领取:阿里云代金券

优秀的个人博客,低调大师

Linux下Azkaban安装

说明: CentOS 7JDK 1.8Azkaban版本:3.59.0官方文档:https://azkaban.readthedocs.io/en/latest/getStarted.html#building-from-source 安装步骤 Clone the repo: git clone https://github.com/azkaban/azkaban.git Build Azkaban and create an installation package: cd azkaban; ./gradlew build installDist 这个编译项目需要一定的时间,可能出现的问题如下: 1:连接maven超时,则需要检查超时的网址和端口是否正常 2:JCE报错 testV1_1 FAILED java.lang.RuntimeException: java.lang.RuntimeException: org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine at azkaban.crypto.Crypto.decrypt(Crypto.java:76) at azkaban.crypto.DecryptionTest.testV1_1(DecryptionTest.java:35) Caused by: java.lang.RuntimeException: org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine at azkaban.crypto.CryptoV1_1.decrypt(CryptoV1_1.java:57) at azkaban.crypto.Crypto.decrypt(Crypto.java:74) ... 1 more Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.handleInvalidKeyException(StandardPBEByteEncryptor.java:1073) at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1050) at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:725) at azkaban.crypto.CryptoV1_1.decrypt(CryptoV1_1.java:55) ... 2 more azkaban.crypto.EncryptionTest > testEncryption FAILED org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.handleInvalidKeyException(StandardPBEByteEncryptor.java:1073) at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.encrypt(StandardPBEByteEncryptor.java:924) at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:642) at azkaban.crypto.CryptoV1_1.encrypt(CryptoV1_1.java:42) at azkaban.crypto.Crypto.encrypt(Crypto.java:58) at azkaban.crypto.EncryptionTest.testEncryption(EncryptionTest.java:28) 5 tests completed, 2 failed > Task :azkaban-common:compileJava 注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':az-crypto:test'. > There were failing tests. See the report at: file:///opt/azkaban/az-crypto/build/reports/tests/test/index.html * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org 解决方法:下载JCEhttps://www.oracle.com/technetwork/cn/java/javase/downloads/jce8-download-2133166-zhs.html我这边使用的JDK8,包含了JCE所需要的jre8解压搜下载好的文件,放置到以下目录:放置到jdk所在目录下的: cp UnlimitedJCEPolicyJDK8/* /usr/local/jdk1.8.0_74/jre/lib/security 对原有的文件进行覆盖 然后在进行重新编译 Start the solo server: 启动单机版的服务 cd azkaban-solo-server/build/install/azkaban-solo-server; bin/start-solo.sh Azkaban solo server should be all set, by listening to 8081 port at default to accept incoming network request. So, open a web browser and check out http://localhost:8081/ 打开页面 Stop server: bin/shutdown-solo.sh azkaban-solo-server 目录说明 目录名称 | 描述 | ------- | ------- | bin | 用于启动/停止Azkaban solo服务器的脚本conf | Azkaban solo服务器的配置文件lib | Azkaban的jar依赖项extlib | 添加到extlib的其他jar将添加到Azkaban的类路径中plugins | 可以安装插件的目录web | Azkaban Web服务器的Web(css,javascript,image)文件 数据库设置 为Azkaban创建数据库: #示例数据库创建命令,尽管db名称不需要是'azkaban' mysql> CREATE DATABASE azkaban; Query OK, 1 row affected (0.00 sec) 为Azkaban创建一个mysql用户。 例如,: # Example database creation command. The user name doesn't need to be 'azkaban' mysql> CREATE USER 'azka'@'%' IDENTIFIED BY '111111'; # give the user INSERT, SELECT, UPDATE, DELETE permission on all tables in the Azkaban db. mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azka'@'%' WITH GRANT OPTION; 在/etc/my.cnf中配置Mysql Packet Size的大小 [mysqld] ... max_allowed_packet=1024M 重启mysql /sbin/service mysqld restart 创建Azkaban表 Installing Azkaban Executor Server 使用Gradle命令指令对源码进行编译注意:如果之前在安装solo模式的时候已经编译完成,则不需再进行编译 # Build Azkaban ./gradlew build # Clean the build ./gradlew clean # Build and install distributions ./gradlew installDist # Run tests ./gradlew test # Build without running tests ./gradlew build -x test 修改azkaban.properties中的mysql用户和密码,同时配置发送邮箱的配置信息 then run cd azkaban-exec-server/build/install/azkaban-exec-server ./bin/start-exec.sh 之后,请记住通过调用以下方法激活执行程序: cd azkaban-exec-server/build/install/azkaban-exec-server curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo 激活成功 然后,一个执行器就可以使用了。用户可以通过分发和部署多个执行程序安装分发来设置多个执行程序。 安装Azkaban Web服务器 Azkaban Web Server处理项目管理,身份验证,调度和执行触发器。您可以从主分支构建最新版本 为了快速入门,我们可以直接使用gradle生成的安装目录azkaban / azkaban-web-server / build / install / azkaban-web-server。 更改账户名和密码 我们只需要在里面更改mysql用户名和密码azkaban.properties: Then run cd azkaban-web-server/build/install/azkaban-web-server ./bin/start-web.sh 默认的账户名和密码: azkaban azkaban 注意 如果修改azkaban.properties的配置信息,则需要重启进程才能生效 配置的文件都是修改install下的azkaban.properties文件 Could not find Linker 'g++' in system path 解决方法: sudo yum install g++ sudo yum install -y gcc-c++* 启动脚本是只能在bin目录外面提 solo是单机版使用的进程web和exec是和mql配置使用,分布式的服务模式 添加和修改配置的时候,修改的是如下位置的配置文件: /opt/azkaban/azkaban-web-server/build/install/azkaban-web-server/conf 然后重启web服务,配置生效 部署阿里云注意事项: 因为阿里云不能使用默认的25端口,所以需要事情ssl的465端口,但是3.59.0的版本是不支持ssl的,所以需要添加如下代码 import java.security.Security; final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); props.setProperty("mail.smtp.socketFactory.fallback", "false"); props.setProperty("mail.smtp.socketFactory.port", "465");

优秀的个人博客,低调大师

Linux安装python模块

# 依赖解决 # yum -y install epel-release python-devel gcc # 安装模块 # pip install psutil ------------------------------------------------------------- 作者: 罗穆瑞 出处: http://www.cnblogs.com/kazihuo/ 转载请保留此段声明,且在文章页面明显位置给出原文链接,谢谢! ------------------------------------------------------------------------------ 如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢! ------------------------------------------------------------------------------

优秀的个人博客,低调大师

Linux命令之curl

获取http请求头信息,-I 只打印response header, -i 打印response header和body curl -I "http://www.jouypub.com" curl -i "http://www.jouypub.com" 使用代理 curl -x 1.193.162.91:8000 http://www.jouypub.com curl -x 1.193.162.91:8000 --connect-timeout 3 --max-time 10 http://www.jouypub.com 上传文件curl -F "filename=@/home/test/file.tar.gz" http://localhost/action.php -F参数,curl就会以 multipart/form-data 的方式发送POST请求。-F参数以name=value的方式来指定参数内容,如果值是一个文件,则需要以name=@file的方式来指定。 选项 -d 以post方式请求 -H 请求时添加header,冒号前后不能有空格 curl -H "name=abc" http://www.jouypub.com -o 结果输出到指定文件 curl -o /dev/null http://www.jouypub.com -m/--max-time 指定最大允许时间,单位秒 curl -m 20 http://www.jouypub.com --connect-timeout 连接超时,单位秒 curl --connect-timeout 5 http://www.jouypub.com

优秀的个人博客,低调大师

linux 日常操作记录

1、搜索文件 locate php.ini 2、重启php服务 service php73-php-fpm restart 3、复制文件 cp [选项] 源文件或目录 目标文件或目录 参数说明: -a:是指archive的意思,也说是指复制所有的目录 -d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身 -f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制 -i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作 -l:建立硬连接(hard link)的连接文件,而非复制文件本身 -p:与文件的属性一起复制,而非使用默认属性 -r:递归复制,用于目录的复制操作 -s:复制成符号连接文件(symbolic link),即“快捷方式”文件 -u:若目标文件比源文件旧,更新目标文件 如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令: cp /test1/file1 /test3/file2 4、查看最后几行 tail -n 20 filename 4、文件中搜索字符 cat -n 20000 laravel-2018-08-03.log |grep 'estimate_price' 5、查看监听 php72 artisan tinker 6、查看队列剩余剩余 Queue::size('high');

优秀的个人博客,低调大师

linux进程内存布局

一个程序本质上都是由 BSS 段、data段、text段三个组成的。这样的概念在当前的计算机程序设计中是很重要的一个基本概念,而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。 BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 数据段:在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。 代码段:在采用段式内存管理的架构中,代码段(text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域属于只读。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。 程序编译后生成的目标文件至少含有这三个段,这三个段的大致结构图如下所示: 其中.text即为代码段,为只读。.bss段包含程序中未初始化的全局变量和static变量。data段包含三个部分:heap(堆)、stack(栈)和静态数据区。 堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减) 栈 (stack):栈又称堆栈, 是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变 量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进先出特点,所以 栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。 当程序在执行时动态分配空间(C中的malloc函数),所分配的空间就属于heap。其概念与数据结构中“堆”的概念不同。 stack段存放函数内部的变量、参数和返回地址,其在函数被调用时自动分配,访问方式就是标准栈中的LIFO方式。(因为函数的局部变量存放在此,因此其访问方式应该是栈指针加偏移的方式,否则若通过push、pop操作来访问相当麻烦) data段中的静态数据区存放的是程序中已初始化的全局变量、静态变量和常量。 在采用段式内存管理的架构中(比如intel的80x86系统),BSS 段(Block Started by Symbol segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域,一般在初始化时 BSS 段部分将会清零。BSS 段属于静态内存分配,即程序一开始就将其清零了。 比如,在C语言之类的程序编译完成之后,已初始化的全局变量保存在.data 段中,未初始化的全局变量保存在.bss 段中。 text和data段都在可执行文件中(在嵌入式系统里一般是固化在镜像文件中),由系统从可执行文件中加载;而BSS段不在可执行文件中,由系统初始化。 图引自《C专家编程》 BSS段只保存没有值的变量,所以事实上它并不需要保存这些变量的映像。运行时所需要的BSS段大小记录在目标文件中,但BSS段并不占据目标文件的任何空间。 //main.c inta=0;//全局初始化区 char*p1;//全局未初始化区 main() { staticintc=0;//全局(静态)初始化区 intb;//栈 chars[]="abc";//栈 char*p2;//栈 char*p3="123456";//"123456\0"在常量区,p3在栈上。 p1=(char*)malloc(10); p2=(char*)malloc(20);//分配得来得10和20字节的区域就在堆区。 } (图出自:http://www.tenouk.com/Bufferoverflowc/Bufferoverflow1c.html) (图出自:APUE-2e,http://infohost.nmt.edu/~eweiss/222_book/222_book.html) The computer program memory is organized into the following: Code segment(text segment) Data Segment -- Data (rodata + rwdata) -- BSS -- Heap Stack Segment Data The data area contains global and staticvariables used by the program that are initialized. This segment can be furtherclassified into initialized read-only (rodata) area and initialized read-writearea (rwdata). BSS The BSS segment also known as uninitialized datastarts at the end of the data segment and contains all uninitialized globalvariables and static variables that are initialized to zero by default. Heap The heap area begins at the end of the BSSsegment and grows to larger addresses from there. The heap area is managed bymalloc/calloc/realloc/new and free/delete, which may use the brk and sbrk system calls to adjust its size. The heaparea is shared by all shared libraries and dynamically loaded modules in aprocess. Stack The stack is a LIFO structure, typically locatedin the higher parts of memory. It usually "grows down" with everyregister, immediate value or stack frame being added to it. A stack frameconsists at minimum of a return address 例子程序 //main.cpp int a = 0; // 全局初始化区(data) char *p1; // 全局未初始化区(bss) int main() { int b; // 栈区(stack) char s[] = "abc"; // 栈区(stack) char *p2; // 栈区(stack) char *p3 = "123456"; // p3 在栈区(stack); "123456\0" 在常量区(rodata) static int c =0; // 全局/静态 初始化区 (data) p1 = ( char *)malloc(10); p2 = ( char *)malloc(20); // 分配得来的 10 和 20 字节的区域就在堆区 (heap) strcpy(p1, "123456"); // "123456\0" 放在常量区(rodata). 编译器可能会将它与 p3 所指向的"123456\0"优化成一个地方。 return 0; } 堆和栈的区别 管理方式:对于栈来讲,是由编译器自动管理;对于堆来说,释放工作由程序员控制,容易产生 memory leak。 空间大小:一般来讲在 32 位系统下,堆内存可以达到接近 4G 的空间,从这个角度来看堆内存几乎是没有什么限制的。但是对于栈来讲,一般都是有一定的空间大小的,例如,在 VC6 下面,默认的栈空间大小大约是 1M。 碎片问题:对于堆来讲,频繁的new/delete 势必会造成内存空间的不连续,从而造成大量碎片,使程序效率降低;对于栈来讲,则不会存在这个问题,因为栈是先进后出的队列,永远都不可能有一个内存块从栈中间弹出。 生长方向:对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲,它的生长方向是向下的,是向着内存地址减小的方向增长。 分配方式:堆都是动态分配的,没有静态分配的堆;栈有 2 种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配,动态分配由 alloca 函数进行分配,但是栈的动态分配和堆是不同的,它的动态分配是由编译器进行释放,不需要我们手工实现。 分配效率:栈是机器系统提供的数据结构,计算机会在底层分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高; 堆则是 C/C++函数库提供的,它的机制是很复杂的,例如为了分配一块内存,库函数会按照一定的算法(具体的算法可以参考数据结构/操作系统)在堆内存中搜索可用的足够大小的空间,如果没有足够大小的空间(可能是由于内存碎片太多),就有可能调用系统功能去增加程序数据段的内存空间,然后进行返回。显然,堆的效率比栈要低得多。 无论是堆还是栈,都要防止越界现象的发生。 关于 Global 和 Static 类型的一点讨论 1. static 全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的定义之前再冠以 static 就构成了静态的全局变量。 全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。 这两者的区别在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。 由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 static 全局变量只初使化一次,防止在其他文件单元中被引用。 2. static 局部变量和普通局部变量有什么区别 ? 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static 局部变量只被初始化一次,下一次依据上一次结果值。 3. static 函数与普通函数有什么区别? static 函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件.static 函数在内存中只有一份(.data),普通函数在每个被调用中维持一份拷贝。 谋胆并重

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle

Oracle

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。