共 426 篇文章

标签:技术文档 第15页

Gunicorn Django部署配置方法

1. 简单部署 1. sudo pip3 install gunicorn 2. cd 到django项目中 sudo python3 manage.py migrate 3.启动服务:sudo python3 manage.py runserver 0.0.0.0:8000 4. 使用gunicorn 来运行项目 注:项目名untitled [root@qqc_os7 untitled]# gunicorn untitled.wsgi -b 0.0.0.0:8000 [2019-08-04 09:31:17 +0800] [16614] [INFO] Starting gunicorn 19.9.0 [2019-08-04 09:31:17 +0800] [16614] [INFO] Listening at: http://0.0.0.0:8000 (16614) [2019-08-04 09:31:17 +0800] [16614] [INFO] Using worker: sync [2019-08-04 09:31:17 +0800] [16617] [INFO] Booting worker with pid: 16617 5. 查看进程 [root@qqc_os7 untitled]# ps aux | grep 8000 root 15383 0.2 1.9 213440 19028 pts/3 S+ 19:27 0:00 /usr/local/python3/bin/python3.6 /usr/local/python3/bin/gunicorn untitled.wsgi -b 0.0.0.0:8000 root 15386 0.2 3.3 256572 33676 pts/3 S+ 19:27 0:00 /usr/local/python3/bin/python3.6 /usr/local/python3/bin/gunicorn untitled.wsgi -b 0.0.0.0:8000 root 15389 0.0 0.0 112676 992 pts/2 S+ 19:30 0:00 grep --color=auto 8000 6.杀死进程 [root@qqc_os7 untitled]# ps...

技术分享
Linux上为你的任务创建一个自定义的系统托盘指示器-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Linux上为你的任务创建一个自定义的系统托盘指示器

系统托盘图标如今仍是一个很神奇的功能。只需要右击图标,然后选择想要的动作,你就可以大幅简化你的生活并且减少日常行为中的大量无用的点击。 一说到有用的系统托盘图标,我们很容易就想到 Skype、Dropbox 和 VLC: 然而系统托盘图标实际上要更有用得多;你可以根据自己的需求创建自己的系统托盘图标。本指导将会教你通过简单的几个步骤来实现这一目的。 前置条件 我们将要用 Python 来实现一个自定义的系统托盘指示器。Python 可能已经默安装在所有主流的 Linux 发行版中了,因此你只需要确定一下它已经被安装好了(此处使用版本为 2.7)。另外,我们还需要安装好 gir1.2-appindicator3 包。该库能够让我们很容易就能创建系统图标指示器。 在 Ubuntu/Mint/Debian 上安装: sudo apt-get install gir1.2-appindicator3 在 Fedora 上安装: sudo dnf install libappindicator-gtk3 对于其他发行版,只需要搜索包含 “appindicator” 的包就行了。 在 GNOME Shell 3.26 开始,系统托盘图标被删除了。你需要安装 这个扩展 (或者其他扩展)来为桌面启用该功能。否则你无法看到我们创建的指示器。 基础代码 下面是该指示器的基础代码: #!/usr/bin/python import os from gi.repository import Gtk as gtk, AppIndicator3 as appindicator def main(): indicator = appindicator.Indicator.new("customtray", "semi-starred-symbolic", appindicator.IndicatorCategory.APPLICATION_STATUS) indicator.set_status(appindicator.IndicatorStatus.ACTIVE) indicator.set_menu(menu()) gtk.main() def menu(): menu = gtk.Menu() command_one = gtk.MenuItem('My Notes') command_one.connect('activate', note) menu.append(command_one) exittray = gtk.MenuItem('Exit Tray') exittray.connect('activate', quit) menu.append(exittray) menu.show_all() return menu def note(_): os.system("gedit $HOME/Documents/notes.txt") def quit(_): gtk.main_quit() if __name__ == "__main__": main() 我们待会会解释一下代码是怎么工作的。但是现在,让我们将该文本保存为 tray.py ,然后使用 Python 运行之: python tray.py 我们会看到指示器运行起来了,如下图所示: Create a Custom System Tray Indicator For Your Tasks on Linux 现在,让我们解释一下这个魔法的原理: 前三行代码仅仅用来指明 Python...

技术分享
Linux简介及最常用命令(简单易学,但能解决95%以上的问题)-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Linux简介及最常用命令(简单易学,但能解决95%以上的问题)

Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。 一、linux的目录结构 bin  (binaries)存放二进制可执行文件 sbin  (super user binaries)存放二进制可执行文件,只有root才能访问 etc (etcetera)存放系统配置文件 usr  (unix shared resources)用于存放共享的系统资源 home 存放用户文件的根目录 root  超级用户目录 dev (devices)用于存放设备文件 lib  (library)存放跟文件系统中的程序运行所需要的共享库及内核模块 mnt  (mount)系统管理员安装临时文件系统的安装点 boot 存放用于系统引导时使用的各种文件 tmp  (temporary)用于存放各种临时文件 var  (variable)用于存放运行时需要改变数据的文件 二、linux常用命令 命令格式: 命令  -选项  参数 (选项和参数可以为空) 如:ls  -la  /usr 2.1 操作文件及目录 命令 参数 示例 说明 cd cd /home 切换目录 pwd pwd 显示当前工作目录目录 touch touch 1.txt 创建空文件 mkdir mkdir testdir 创建一个新目录 -p mkidr -p dir1/dir2/dir3/ 创建多级目录,父目录不存在情况下先生成父目录 cp cp 1.txt 复制文件或目录 -r cp -r dir1/ 递归处理,将指定目录下的文件与子目录一并拷贝 mv mv dir1 dir2 移动文件或目录、文件或目录改名 rm rm 1.txt 删除文件 -r -f rm -rf dir1 r同时删除该目录下的所有文件, f强制删除文件或目录 rmdir rmdir dir1 删除空目录 cat cat 1.txt 显示文本文件内容 more more 1.txt 分页显示文本文件内容,可前后翻页,空格向后,b向前 less less 1.txt 分页显示文本文件内容,可前后翻页,空格向后,b向前,支持底行模式(后面介绍) head head 1.txt 查看文本开头部分,默认十行 -[num] head -20 1.txt 查看文本开头部分指定行数 tail tail 1.txt 查看文本结尾部分,默认十行 -[num]...

技术分享

Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示

一、中间件简介 1、基础概念 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。 2、分布式数据库 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。 3、核心角色 1)节点和集群 cluster代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体。单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。 2)Shards分片 代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。 3)Document文档 Index 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。Document 使用 JSON 格式表示。 4)Index索引 Elastic 会索引所有字段,查找数据的时候,直接查找该索引。每个 Index (即理解为数据库名称)的名字必须是小写。 5)Type类型 Document 可以根据Type进行虚拟的逻辑分组,用来过滤 Document,即理解为数据库表名称。 二、中间件安装 1、安装环境和版本 Centos7 JDK1.8 elasticsearch-6.3.2 2、下载解压 下载的路径,当前目录的文件夹下,也可以指定下载路径。wget -P 目录 网址。 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip [root@localhost roo]# mv elasticsearch-6.3.2.zip /usr/local/mysoft/ [root@localhost mysoft]# unzip elasticsearch-6.3.2.zip 3、启动软件 [root@localhost mysoft]# cd elasticsearch-6.3.2/ [root@localhost elasticsearch-6.3.2]# ./bin/elasticsearch 1)报错一 org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root 新建用户组和用户 [root@localhost]# useradd esroot [root@localhost]# passwd esroot [root@localhost]# groupadd esgroup [root@localhost]# usermod -g esgroup esroot esroot用户授权 chown esroot /usr/local/mysoft/elasticsearch-6.3.2 -R 切换到esroot用户 [root@localhost mysoft]# su - esroot [esroot@localhost ~]$ su #回到root用户 2)报错二 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 执行如下命名,该操作在Root权限下操作。 [root@localhost roo]# vim...

技术分享

linux采用scp命令拷贝文件到本地,拷贝本地文件到远程服务器的方法

如下所示: 拷贝远程服务器的文件到本地: scp -r -P  端口号   用户名@IP地址:/usr/local/tomcat_airc/webapps/        /tmp/kyj/ 拷贝本地文件到远程服务器: scp -r    /tmp/kyj/sys.war         用户名@IP地址:/usr/local/tomcat_airc/webapps/ 以上这篇linux采用scp命令拷贝文件到本地,拷贝本地文件到远程服务器的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

技术分享

检测ip和port是否可连接的方法

windows cmd telnet format: telnet ip port case: telnet 191.1.1.1 8080 telnet不能加http:// telnet不支持域名 telnet默认端口是23 telnet连接ip和port是空格” “而不是冒号”:” 如果不可连接,会提示连接失败,否则如果cmd出现一大段空白和不可操作界面则表示连接成功。 ping format: ping ip或者domain:port case: ping 191.1.1.1:8080 ping不能加http:// ping支持域名 ping默认端口是80 ping连接ip和port是冒号”:” 如果不可连接,会提示连接失败,否则提示发送和接收多少字节,一共四轮发送接收。 以上这篇检测ip和port是否可连接的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

技术分享

Linux 中锁定和解锁用户帐户的三种方法

如果你已经在你的组织中实施了某种密码策略,你无需看这篇文章了。但是在这种情况下,如果你给账户设置了 24 小时的锁定期,你需要手动解锁用户帐户。 本教程将帮助你在 Linux 中手动锁定和解锁用户帐户。 这可以通过三种方式使用以下两个 Linux 命令来完成。 passwd usermod 为了说明这一点,我们选择 daygeek 用户帐户。让我们看看,怎么一步步来实现的。 请注意,你必须使用你需要锁定或解锁的用户的帐户,而不是我们的帐户。你可以使用 id 命令检查给定的用户帐户在系统中是否可用。是的,我的这个帐户在我的系统中是可用的。 # id daygeek uid=2240(daygeek) gid=2243(daygeek) groups=2243(daygeek),2244(ladmin) 方法1: 如何使用 passwd 命令锁定、解锁和检查 Linux 中给定用户帐户的状态? passwd 命令是 Linux 管理员经常使用的命令之一。它用于更新 /etc/shadow 文件中用户的身份验证令牌。 使用 -l 开关运行 passwd 命令,锁定给定的用户帐户。 # passwd -l daygeek Locking password for user daygeek. passwd: Success 你可以通过 passwd 命令或从 /etc/shadow 文件中获取给定用户名来检查锁定的帐户状态。 使用 passwd 命令检查用户帐户锁定状态。 # passwd -S daygeek 或 # passwd --status daygeek daygeek LK 2019-05-30 7 90 7 -1 (Password locked.) 这将输出给定帐户密码状态的简短信息。 LK NP PS 使用 /etc/shadow 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。 # grep daygeek /etc/shadow daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00 :18047:7:90:7::: 使用 -u 开关运行 passwd 命令,可以解锁给定的用户帐户。 # passwd -u daygeek Unlocking password for user daygeek. passwd: Success 方法2:如何使用 usermod 命令在 Linux 中锁定、解锁和检查给定用户帐户的状态? usermod 命令也经常被 Linux 管理员使用。 usermod 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。 使用 -L 开关运行...

技术分享

解决Linux system v 共享内存问题

system v 共享内存 #include <sys/types.h> #include <sys/shm.h> int shmget(key_t key, size_t size, int shmflg); 建立:进程与共享内存的关联关系 key_t key:16进制的非0数字。 一般有两种方式设置它。 第一种:调用fotk函数 第二章:直接使用IPC_PRIVATE size:共享内存的大小 shmflg: IPC_CREAT IPC_EXCL 用户,组用户,其他用户对这片内存的权限,有9个bit来表示,比如664 返回值:成功返回这片共享内存的标识号;失败返回-1,errno被设置。 #include <sys/types.h> #include <sys/shm.h> void *shmat(int shmid, const void *shmaddr, int shmflg); shmid:由shmget函数创建的,也就是shmget函数的返回值 shmaddr: NULL:让内核去申请内存空间 非NULL:自己用malloc开辟一个空间,让共享内存shmid和这个地址关联上。但是如果不是4K的整数倍,内核会向上或者向下调整。 shmflg: SHM_RND:读写 SHM_RDONLY:只读 返回值: 成功:返回内存地址 失败:返回(void *) -1 #include <sys/types.h> #include <sys/shm.h> int shmdt(const void *shmaddr); 取消进程与共享内存的关联关系 shmaddr:shmat的返回值 返回值:成功0;失败-1,并设置errno。 #include <sys/types.h> #include <sys/shm.h> int shmctl(int shmid, int cmd, struct shmid_ds *buf); 对共享内存操作,更具cmd的不同,对共享内存进行不同的操作。 shmid:由shmget函数创建的,也就是shmget函数的返回值 cmd: IPC_STAT:得到共享内存的状态 IPC_RMID:标记删除共享内存(当共享内存的引用计数变为0时,删除) IPC_SET:设置共享内存的属性(修改权限,修改shmid等) 等等 buf:shmid_ds结构体 返回值:当cmd是IPC_RMID时:成功0;失败-1,并设置errno 用命令【ipcs】可以查看共享内存的状态 ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00007fff 65536 ys 664 256 0 0x00007ffe 98305 ys 664 256 0 0x0000555e 131074 ys 664 256 0 0x00000011 229379 ys 664 256 3 key:函数shmget指定的第一个参数...

技术分享

Ubuntu环境源码编译安装xdebug的方法

本文实例讲述了Ubuntu环境源码编译安装xdebug的方法。分享给大家供大家参考,具体如下: 前面介绍了Ubuntu环境编译安装PHP和Nginx的方法,这里再来讲解一下源码编译安装xdebug的方法。 下载并解压xdebug xdebug下载地址:https://xdebug.org/download.php 我下载的是2.3.3,其实我也不清楚这些版本的区别,就随便下载了一个。 cd /usr/local/src wget https://xdebug.org/files/xdebug-2.3.3.tgz tar -zxvf xdebug-2.3.3.tgz 编译安装xdebug php安装到了 /opt/php路径下 cd /usr/local/src/xdebug-2.3.3 /opt/php/bin/phpize ./configure --prefix=/opt/xdebug --with-php-config=/opt/php/bin/php-config make && make install 安装成功以后,会有显示如下信息: Installing shared extensions: /opt/php/lib/php/extensions/no-debug-non-zts-20131226/ 配置php.ini 我们在php.ini的最后添加xdebug扩展: zend_extension=/opt/php/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so 重启nginx生效。 如果找不到php.ini的话,可以使用/opt/php/bin/php -i |grep php.ini查找php.ini的路径信息,如果对应路径没有php.ini文件,可以从解压的php源代码里面cpoy一份php.ini-development或者php.ini-production使用。 希望本文所述对大家Ubuntu环境配置有所帮助。

技术分享

对linux下syslogd以及syslog.conf文件的解读说明

1: syslog.conf的介绍 对于不同类型的Unix,标准UnixLog系统的设置,实际上除了一些关键词的不同,系统的syslog.conf格式是相同的。syslog采用可配置的、统一的系统登记程序,随时从系统各处接受log请求,然后根据/etc/syslog.conf中的预先设定把log信息写入相应文件中、邮寄给特 定用户或者直接以消息的方式发往控制台。值得注意的是,为了防止入侵者修改、删除messages里的记录信息,可以采用用打印机记录或采用方式来挫败入 侵者的企图。 2: syslog.conf的格式 可以参考man [5] syslog.conf。这里是对syslog.conf的简单介绍。 /etc/syslog.conf文件中的一项配置记录由“选项”(selector)和“动作”(action)两个部分组成,两者间用tab制表符进 行分隔(使用空格间隔是无效的)。而“选项”又由一个或多个形如“类型.级别”格式的保留字段组合而成,各保留字段间用分号分隔。如下行所示: 类型.级别 [;类型.级别] `TAB` 动作 2.1 类型 保留字段中的“类型”代表信息产生的源头,可以是: auth 认证系统,即询问用户名和口令 cron 系统定时系统执行定时任务时发出的信息 daemon 某些系统的守护程序的syslog,如由in.ftpd产生的log kern 内核的syslog信息 lpr 打印机的syslog信息 mail 邮件系统的syslog信息 mark 定时发送消息的时标程序 news 新闻系统的syslog信息 user 本地用户应用程序的syslog信息 uucp uucp子系统的syslog信息 local0..7 种本地类型的syslog信息,这些信息可以又用户来定义 * 代表以上各种设备 2.2 级别 保留字段中的“级别”代表信息的重要性,可以是: emerg 紧急,处于Panic状态。通常应广播到所有用户; alert 告警,当前状态必须立即进行纠正。例如,系统数据库崩溃; crit 关键状态的警告。例如,硬件故障; err 其它错误; warning 警告; notice 注意;非错误状态的报告,但应特别处理; info 通报信息; debug 调试程序时的信息; none 通常调试程序时用,指示带有none级别的类型产生的信息无需送出。如*.debug;mail.none表示调试时除邮件信息外其它信息都送出。 2.3 动作 “动作”域指示信息发送的目的地。可以是: /filename 日志文件。由绝对路径指出的文件名,此文件必须事先建立; @host 远程主机; @符号后面可以是ip,也可以是域名,默认在/etc/hosts文件下loghost这个别名已经指定给了本机。 user1,user2 指定用户。如果指定用户已登录,那么他们将收到信息; * 所有用户。所有已登录的用户都将收到信息。 3: 具体实例 我们来看看/etc/syslog.conf文件中的实例: …… *.err;kern.debug;daemon.notice;mail.crit [TAB] /var/adm/messages …… 这行中的“action”就是我们常关心的那个/var/adm/messages文件,输出到它的信息源头“selector”是: *.err – 所有的一般错误信息; kern.debug – 核心产生的调试信息; daemon.notice – 守护进程的注意信息; mail.crit – 邮件系统的关键警告信息 4:syslog.conf内容 日志文件由系统日志和内核日志监控程序syslogd 与klogd 控制, 在/etc/syslog.conf 文件中配置这两个监控程序默认活动。 日志文件按/etc/syslog.conf 配置文件中的描述进行组织。以下是/etc/syslog.conf 文件的内容: [root@localhost ~]# cat /etc/syslog.conf # Log all kernel messages to the console. # Logging...

技术分享