Docker 方式安装Gogs

Gogs 是 一个能够简单自建Git托管服务的开源项目,用 go 语言实现。
Gogs 官方地址

概况

  • 掌握了如何运用Docker安装启动 Gogs
  • 掌握了如何运用Docker安装启动 Mysql
  • 掌握了如何使用Docker compose 命令整合 Gogs & Mysql 两个容器

MySQL 镜像的下载、启动容器

  1. 从默认的仓库拉取mysql镜像:docker pull mysql
  2. 查看本地有哪些镜像:docker images
  3. 运行mysql镜像生成名字叫做mysql2的容器,映射主机端口是13306,root密码是123456 : docker run
  4. 查看本地创建了哪些容器 docker ps
  5. 交互方式进入mysql2容器的shell环境,创建一个数据库testdb docker exec
[root@localhost ~]# docker pull mysql
[root@localhost ~]# docker images
REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
mysql                                   latest              eda6a4884645        2 days ago          383.4 MB
hello-world                             latest              c54a2cc56cbb        3 months ago        1.848 kB
index.tenxcloud.com/huangqg/wordpress   latest              88bc02275ad7        12 months ago       485.5 MB
[root@localhost ~]# docker run -d -p 13306:3306  --name mysql2 -v /opt/mydata/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
01ff7db79a2bba578f4cef7024cd1e02bfec1084478e7835a79aeed317278b03
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
01ff7db79a2b        mysql:latest        "docker-entrypoint.sh"   29 seconds ago      Up 27 seconds       0.0.0.0:13306->3306/tcp   mysql2
[root@localhost ~]# docker exec -it mysql2 /bin/bash
root@01ff7db79a2b:/# mysql --version
mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper
root@01ff7db79a2b:/# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database testdb;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)


主机(Win10中文版)访问虚拟机MySQL的 Docker 容器 mysql2
看到了 testdb 的存在

D:\>mysql -h 192.168.1.161 -P 13306 -uroot -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database testdb;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)

Gogs 镜像的下载、启动容器

[Gogs 镜像地址] (https://hub.docker.com/r/gogs/gogs/)

[root@localhost ~]# docker pull gogs/gogs
Using default tag: latest
latest: Pulling from gogs/gogs
6c123565ed5e: Pull complete
b42f29d13b9c: Pull complete
01150f5f4ffe: Pull complete
be1365fee626: Pull complete
6ccc52766b77: Pull complete
cb0e4cd5b47d: Pull complete
Digest: sha256:f206e8bcc77c8577fe1c4a94e59fe3a3a0ddb8e0f8f4fa6cf4a88d241c645d20
Status: Downloaded newer image for gogs/gogs:latest
[root@localhost ~]# docker images
REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
mysql                                   latest              eda6a4884645        4 days ago          383.4 MB
gogs/gogs                               latest              d28f8296a1e9        4 weeks ago         89.22 MB
hello-world                             latest              c54a2cc56cbb        3 months ago        1.848 kB
index.tenxcloud.com/huangqg/wordpress   latest              88bc02275ad7        12 months ago       485.5 MB
[root@localhost ~]# docker run -d --name=mygogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs 
8d9da372bd4373532623cf875300ef21c0b166f78f2fd73cdf9b733cc747f647
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
8d9da372bd43        gogs/gogs           "docker/start.sh /bin"   7 seconds ago       Up 6 seconds        0.0.0.0:10022->22/tcp, 0.0.0.0:10080->3000/tcp   mygogs
01ff7db79a2b        mysql:latest        "docker-entrypoint.sh"   27 hours ago        Up 42 minutes       0.0.0.0:13306->3306/tcp                          mysql2

Gogs 的配置和使用

  1. 打开chrome 浏览器,输入网址 :http://192.168.1.161:10080/
  2. 第一次访问Gogs,浏览器进入安装页面,如图所示填写字段:
    Paste_Image.png
    Paste_Image.png
  3. 编辑 Gogs 配置文件(vi /var/gogs/gogs/conf/app.ini
    修改 ROOT_URL = http://192.168.1.161:10080/
......
[server]
DOMAIN       = 192.168.1.161
HTTP_PORT    = 3000
ROOT_URL     = http://192.168.1.161:10080/
DISABLE_SSH  = false
SSH_PORT     = 10022
OFFLINE_MODE = false
......

问题:为什么可以修改 Host 的 /var/gogs/ 目录的文件,就可以改变容器里的配置文件?
答案:因为启动容器的时候,我们使用 -v /var/gogs:/data 把 Host 里的目录 /var/gogs 挂载到容器的/data/目录

  1. 查看数据库的情况
C:\Users\andy>mysql -h 192.168.1.161 -P 13306 -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| gogs               |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
6 rows in set (0.06 sec)

mysql> use gogs
Database changed
mysql> show tables;
+----------------+
| Tables_in_gogs |
+----------------+
| access         |
| access_token   |
| action         |
| attachment     |
| collaboration  |
| comment        |
| deploy_key     |
| email_address  |
| follow         |
| hook_task      |
| issue          |
| issue_label    |
| issue_user     |
| label          |
| login_source   |
| milestone      |
| mirror         |
| notice         |
| org_user       |
| public_key     |
| pull_request   |
| release        |
| repository     |
| star           |
| team           |
| team_repo      |
| team_user      |
| update_task    |
| upload         |
| user           |
| version        |
| watch          |
| webhook        |
+----------------+
33 rows in set (0.00 sec)

小礼物走一走,来简书关注我

作者:andy0898
链接:https://www.jianshu.com/p/64e9708c23e7
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

zabbix系统 源码安装

1、下载源码包

# wget -O zabbix-3.4.2.tar.gz http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.2/zabbix-3.4.2.tar.gz/download

2、安装依赖库

# yum -y install net-snmp-devel libxml2-devel libcurl-deve libevent libevent-devel

3、解压并编译

# tar -zxf zabbix-3.4.2.tar.gz
# cd zabbix-3.4.2
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

4、安装

# make && make install

5、创建zabbix用户和用户组

# groupadd zabbix
# useradd -r -g zabbix zabbix
# cd /usr/local && chown -R zabbix:zabbix zabbix

6、创建zabbix数据库,并导入表结构

复制代码
# mysql -uroot -p
mysql> create database if not exists zabbix default character set utf8 collate utf8_general_ci;
mysql> use zabbix;
mysql> source /tmp/zabbix-3.4.2/database/mysql/schema.sql;
mysql> source /tmp/zabbix-3.4.2/database/mysql/images.sql;
mysql> source /tmp/zabbix-3.4.2/database/mysql/data.sql;
复制代码

7、创建日志目录

# cd /usr/local/zabbix
# mkdir logs
# chown zabbix:zabbix logs

8、修改zabbix_server.conf

复制代码
# vim ./etc/zabbix_server.conf

LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf
复制代码

9、修改zabbix_agent.conf

# vim ./etc/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.con

10、启动zabbix_server 和 zabiix_agent服务

# /usr/local/zabbix/sbin/zabbix_server
# /usr/local/zabbix/sbin/zabbix_agent

PS:如果再启动的时候报错:error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

解决方法:

# ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/
# ldconfig

然后再次启动服务

11、拷贝WEB应用程序,/data/html为nginx或者Apache的运行PHP程序的目录

# mv /tmp/zabbix-3.4.2/frontends/php/ /data/html/zabbix
# chown -R www:www /data/html/zabbix

12、访问zabbix:http://ip/zabbix/index.php,初始化安装的默认账号:Admin,密码:zabbix

configure: error: Cannot find ldap libraries in /usr/lib 解决办法

configure: error: Cannot find ldap libraries in /usr/lib

解决办法:

cp -frp /usr/lib64/libldap* /usr/lib/

【Linux】安装 virtualbox 增强功能(共享文件)

挂载 VBoxLinuxAdditions 镜像

方法1:使用虚拟机自带功能 – 安装增强功能来安装镜像

会自动mount镜像到虚拟机中

VirtualBox 增强功能01

方法2:通过寻找iso镜像手动mount

未尝试
VirtualBox 增强功能02

VirtualBox 增强功能03

本机目录: C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso

[root@WOM ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_xcdw-lv_root
                      493G  212G  256G  46% /
tmpfs                 4.9G  1.2G  3.7G  25% /dev/shm
/dev/sda1             477M   41M  411M   9% /boot
/dev/mapper/vg_xcdw-lv_home
                      493G  225G  243G  48% /home
/dev/sr0               56M   56M     0 100% /media/VBox_GAs_5.2.12 # 增强功能镜像

VBoxLinuxAdditions被自动mount到/media/VBox_GAs_5.2.12

复制文件:cp /media/VBox_GAs_5.2.12/VBoxLinuxAdditions.run /tmp/VBoxLinuxAdditions.run

安装前置依赖包

安装 yum install kernel sources kernel-devel gcc -y 等包

[root@WOM ~]# yum install kernel sources kernel-devel gcc  -y
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * epel: ftp.cuhk.edu.hk
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.shu.edu.cn
No package sources available.
包 gcc-4.4.7-18.el6_9.2.x86_64 已安装并且是最新版本解决依赖关系

--> 执行事务检查
---> Package kernel.x86_64 0:2.6.32-696.28.1.el6 will be 安装
--> 处理依赖关系 kernel-firmware >= 2.6.32-696.28.1.el6,它被软件包 kernel-2.6.32-696.28.1.el6.x86_64 需要
---> Package kernel-devel.x86_64 0:2.6.32-696.28.1.el6 will be 安装
--> 执行事务检查
---> Package kernel-firmware.noarch 0:2.6.32-696.el6 will be 升级
---> Package kernel-firmware.noarch 0:2.6.32-696.28.1.el6 will be an update
--> 完成依赖关系计算
依赖关系解决
===========================================================================================================================================================================================
 软件包                                          架构                                   版本                                                 仓库                                     大小
===========================================================================================================================================================================================
正在安装:
 kernel                                          x86_64                                 2.6.32-696.28.1.el6                                  updates                                  32 M
 kernel-devel                                    x86_64                                 2.6.32-696.28.1.el6                                  updates                                  11 M
为依赖而更新:
 kernel-firmware                                 noarch                                 2.6.32-696.28.1.el6                                  updates                                  29 M

事务概要
===========================================================================================================================================================================================
Install       2 Package(s)
Upgrade       1 Package(s)

总下载量:72 M
下载软件包:
(1/3): kernel-2.6.32-696.28.1.el6.x86_64.rpm                                                                                                                        |  32 MB     00:14     
(2/3): kernel-devel-2.6.32-696.28.1.el6.x86_64.rpm                                                                                                                  |  11 MB     00:16     
http://mirrors.shu.edu.cn/centos/6.9/updates/x86_64/Packages/kernel-firmware-2.6.32-696.28.1.el6.noarch.rpm: [Errno 12] Timeout on http://mirrors.shu.edu.cn/centos/6.9/updates/x86_64/Packages/kernel-firmware-2.6.32-696.28.1.el6.noarch.rpm: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
尝试其他镜像。
(3/3): kernel-firmware-2.6.32-696.28.1.el6.noarch.rpm                                                                                                               |  29 MB     00:43     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                                       234 kB/s |  72 MB     05:15     
运行 rpm_check_debug 
执行事务测试
事务测试成功
执行事务
  正在升级   : kernel-firmware-2.6.32-696.28.1.el6.noarch                                                                                                                                1/4 
  正在安装   : kernel-2.6.32-696.28.1.el6.x86_64                                                                                                                                         2/4 
  正在安装   : kernel-devel-2.6.32-696.28.1.el6.x86_64                                                                                                                                   3/4 
  清理       : kernel-firmware-2.6.32-696.el6.noarch                                                                                                                                     4/4 
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
  Verifying  : kernel-firmware-2.6.32-696.28.1.el6.noarch                                                                                                                                1/4 
  Verifying  : kernel-devel-2.6.32-696.28.1.el6.x86_64                                                                                                                                   2/4 
  Verifying  : kernel-2.6.32-696.28.1.el6.x86_64                                                                                                                                         3/4 
  Verifying  : kernel-firmware-2.6.32-696.el6.noarch                                                                                                                                     4/4 

已安装:
  kernel.x86_64 0:2.6.32-696.28.1.el6                                                        kernel-devel.x86_64 0:2.6.32-696.28.1.el6                                                       

作为依赖被升级:
  kernel-firmware.noarch 0:2.6.32-696.28.1.el6                                                                                                                                               

完毕!

运行镜像安装脚本

目录:/tmp
运行命令sh VBoxLinuxAdditions.run

[root@WOM tmp]# sh VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.2.12 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 5.2.12 of VirtualBox Guest Additions...
You may need to restart your guest system to finish removing the guest drivers.
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-2.6.32-696.el6.x86_64
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules.
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
for adding new hardware support to the system.
The distribution packages containing the headers are probably:
    kernel-devel kernel-devel-2.6.32-696.el6.x86_64

由上述可知,需要重启系统
重启之前,先配置好共享文件夹

添加共享文件夹

VirtualBox 增强功能04

挂载共享文件夹

切换到root用户输入挂载命令:

sudo mount -t vboxsf shared_file /home/xingoo/shared

注意格式为

sudo mount -t vboxsf 共享文件夹名称(在设置页面设置的) 挂载的目录

配置完成,效果展示

* 查看 共享盘是否已经mount上去 *

[root@WOM ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_xcdw-lv_root
                      493G  212G  256G  46% /
tmpfs                 4.9G     0  4.9G   0% /dev/shm
/dev/sda1             477M   79M  374M  18% /boot
/dev/mapper/vg_xcdw-lv_home
                      493G  225G  243G  48% /home
share_file            1.9T  1.7T  128G  94% /media/sf_share_file

发现多了一个盘share_file
文字文件可以在虚拟机和本机互相复制,则配置成功

原文链接:https://blog.csdn.net/qq_21165007/article/details/80344810

修改PHP上传文件大小限制的方法

修改PHP上传文件大小限制的方法
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

;还需要根据实际情况调整下面的选项
max_execution_time = 180 ;脚本最大执行时间(秒) ,过短会导致文件还没上传完脚本就停止了。
max_input_time = 180 ;请求的最大传输时间,过短会导致文件还没上传完传输就停止了。
memory_limit = 128M ;内存上限

修改完成后重启php-fpm或reload配置。

 

 

 

Nginx配置更改

如果上传文件时超过了nginx的限制,就会返回一个“413 Request Entity Too Large”的错误。
我们只要更改nginx的配置文件“nginx.conf”即可。
在http{}中添加一个client_max_body_size 20m;配置项;
修改完成之后重启nginx或reload配置。

Beanstalkd消息队列的安装与使用

Beanstalkd消息队列的安装与使用

一、Beanstalkd是什么?

Beanstalkd是一个高性能,轻量级的分布式内存队列

 

二、Beanstalkd特性

1、支持优先级(支持任务插队)
2、延迟(实现定时任务)
3、持久化(定时把内存中的数据刷到binlog日志)
4、预留(把任务设置成预留,消费者无法取出任务,等某个合适时机再拿出来处理)
5、任务超时重发(消费者必须在指定时间内处理任务,如果没有则认为任务失败,重新进入队列)

 

三、Beanstalkd核心元素

生产者 -> 管道(tube) -> 任务(job) -> 消费者

Beanstalkd可以创建多个管道,管道里面存了很多任务,消费者从管道中取出任务进行处理。

 

四、任务job状态

delayed 延迟状态
ready 准备好状态
reserved 消费者把任务读出来,处理时
buried 预留状态
delete 删除状态

五、安装Beanstalkd

1
http://kr.github.io/beanstalkd/download.html

下载beanstalkd-1.10.tar.gz

1
2
3
> tar -xf beanstalkd-1.10.tar.gz
> cd beanstalkd-1.10
> make

查看beanstalkd参数信息

1
> ./beanstalkd -h

启动beanstalkd

1
> ./beanstalkd -l 127.0.0.1 -p 11300 -b /data/beanstalkd/binlog &

-b表示开启binlog,断电后重启自动恢复任务

/data/beanstalkd/binlog  为目录

 

六、下载Pheanstalk类

首先安装composer

1
2
3
> curl -sS https://getcomposer.org/installer | php
> mv composer.phar /usr/local/bin/composer
> composer require pda/pheanstalk

编写一个简单脚本查看信息

1
2
3
4
5
6
7
8
<?php
require './vendor/autoload.php';
use Pheanstalk\Pheanstalk;
$p new Pheanstalk('127.0.0.1', 11300);
//查看beanstalkd当前的状态信息
var_dump($p->stats());

 

七、Pheanstalk使用方法

维护方法

1
2
3
4
5
6
7
stats() 查看状态方法
listTubes() 目前存在的管道
listTubesWatched() 目前监听的管道
statsTube() 管道的状态
useTube() 指定使用的管道
statsJob() 查看任务的详细信息
peek() 通过任务ID获取任务

生产者方法

1
2
putInTube() 往管道中写入数据
put() 配合useTube()使用

消费者方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
watch() 监听管道,可以同时监听多个管道
ignore() 不监听管道
reserve() 以阻塞方式监听管道,获取任务
reserveFromTube()
release() 把任务重新放回管道
bury() 把任务预留
peekBuried() 把预留任务读取出来
kickJob() 把buried状态的任务设置成ready
kick() 批量把buried状态的任务设置成ready
peekReady() 把准备好的任务读取出来
peekDelayed() 把延迟的任务读取出来
pauseTube() 给管道设置延迟
resumeTube() 取消管道延迟
touch() 让任务重新计算ttr时间,给任务续命

生产者producer.php代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
require './vendor/autoload.php';
use Pheanstalk\Pheanstalk;
//创建一个Pheanstalk对象
$p new Pheanstalk('192.168.1.222', 11300);
$data array(
    'id' => 1,
    'name' => 'test',
);
//向userReg管道中添加任务,返回任务ID
//put()方法有四个参数
//第一个任务的数据
//第二个任务的优先级,值越小,越先处理
//第三个任务的延迟
//第四个任务的ttr超时时间
$id $p->useTube('userReg')->put(json_encode($data));
//获取任务
$job $p->peek($id);
//查看任务状态
print_r($p->statsJob($job));

消费者consumer.php代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
require './vendor/autoload.php';
use Pheanstalk\Pheanstalk;
//创建一个Pheanstalk对象
$p new Pheanstalk('192.168.1.222', 11300);
//监听userReg管道,忽略default管道
$job $p->watch('userReg')->ignore('default')->reserve();
$data = json_decode($job->getData());
//打印任务中的数据
print_r($data);
//最后删除任务,表示任务处理完成
$p->delete($job);

linux shell script

#!/bin/bash  
############################
#desc:这只是练习案例
############################

read -t 10 -p '请输入你的名字: ' name;  #name变量提示用户输入,用户10秒未      输入结束

name=${name:- 'ace'}; #当name未定义时默认值为ace

1.判断

-e : 该文件名是否存在(目录或文件)

-f : 该文件是否存在

-d : 该目录是否存在

-r : 该文件是否具有读权限

-w : 该文件是否具有写权限

-x : 该文件是否具有执行权限

-eq : 两个值是否相等

-gt -lt : 大于,小于

== : 判断两个字符串是否相等

-a : and 相当于 &&

-o : or 相当于 ||

-! :  取反

linux command

 1.bc  简单的计算机,可进行四则运算

2.who  查看有哪些用户连接到终端

3.netstat  用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

 4.shutdown  惯用关机命令

重启命令:reboot,halt,poweroff        将数据同步写入硬盘中的指令: sync

5.su 用户名    切换用户

6.chgrp 改变所属群组

7.chown [-R] 帐号名称:群组名称 文件或目录

8.chmod [-R] 权限 文件或目录

9.mkdir  [-p]  创建文件夹 (make directory)

10.cd   修改目录   (change directory)

11.pwd   显示当前工作目录  (print working director)

12.rmdir  删除目录  (remove directory)

13.cp  复制文件 copy     cp  -p   连同文件的属性一起复制过去

14.mv  移动文件   move(可以重命名)

15.rm  删除文件或目录

16.basename    dirname    获取文件的路径或文件名

17.文件内容查阅

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行
  • od 以二进制的方式读取文件内容!动态查看文件后两行信息

18.chattr   [+-+]  [ASacdistu]  设置文件隐藏属性

a:设置a后文件只能增加数据,不能修改和删除

i:不能删除、改名、设置链接,也无法写入或更新数据 

19.passwd  新密码   修改密码

-l : 锁定账号

-u : 解锁账号

 

20.which -a command  查询命令所在位置

21.locate [-ir]      查询文件     updatedb 更新库文件

i:忽略大小写

r:后面可接正则表达式

22.df  列出文件系统使用量

23.du 列出目录下所有文件大小

24.lsblk  列出系统下所有磁盘以及磁盘的分区信息  blkid 

25.parted  查看分区信息

26.gdisk  fdisk    分区

27.mkfs.[xfs|ext4|ext3]   格式化分区

28.mount 挂载分区

mount 设备名 挂载目录

mount UUID=”设备编号” 挂载目录

29.umount 设备文件名   设备文件卸载

设置开机自动挂载 vim /etc/fstab 30.vi  编辑机器

一般指令模式

[ctrl]+[f]  / page down  屏幕向下翻一页

[ctrl]+[b] / page up  屏幕向上翻一页

0/home | $/end   光标移动到当前行的头或尾

G 光标移动到文件最后一列

nG |ngg   n为数字光标移动到文件第n列

gg 移动到文件第一列

n<enter>   n 为数字,光标向下移动n列

/word | ?word    向下或向上搜索文本内容 ‘word’为需要搜索的关键字

n 重复前一个搜索的动作、

dd  删除光标所在行

ndd  n为数字,删除光标所在的向下n行

yy 复制光标所在行

nyy  n为数字,复制光标向下n列

p  将以复制的数据,粘贴到光标所在的下一列

u  撤销上一个动作

:w  将编辑的数据写入到磁盘

:q  离开  :q!  强制离开(修改过文件不想写入)

:wq  存储后离开

:w [filename]  数据存储为另一个文件

:set nu 显示行号

:set nonu 取消显示行号

块操作

v 字符选择,将光标所经过选中

y 复制光标选中

p 粘贴复制内容

d  删除光标选中内容

多窗口

:sp [filename]  多窗口,不输入文件名默认打开当前文件

ctrl+w+↑|↓   切换窗口,同时按住ctrl+w 后 松开按下上下箭头切换

31.id 用户名  查看用户信息

32.useradd   增加账号

32.sudo   visudo

33.last  查看当前账号登录记录

34.lastlog  查看所有账号登录记录

35.write  账号   终端端口      和某个终端通话

36.wall  ‘消息’   给所有终端发消息

1.影响显示结果的语系变量(locale)

locale -a 查看支持的语系   (语系变量配置文件位置  /etc/locale.conf)

2.read  [-pt] 变量名   变量键盘读取

3.ulimit [option]    /etc/security/limits.conf

3.history

4.wc

依次是:行数 字数(英文单词) 字符数

5. grep  [-A] [-B] [–color=auto] ‘查询的字符串’ filename

6.sed [-i] 功能 文件名

-i :直接修改文件内容

功能:a:新增 c:取代 d:删除

1.在第二行后新增 ‘dddddd’

2.把第3-5行替换成 gggggg

3.删除第2-8行

lsof -i:8080  查看指定端口配哪个应用程序占用