三不朽

Windows下Wamware在 Linux 客户机中自动装载共享文件夹

Publish: January 16, 2020 Category: 小玩具,运维 No Comments

图形界面中按下面操作:

1、使用VMware启动虚拟机,选择:菜单Player->Manage->install VMware Tools,因为我已经安装过了,所以菜单变为灰色(如果没有安装VMware Tools,请参考上面的安装链接):

2、选择:Virtual Machine Settings->Share Folders,将Disabled改为Always enabled:
我这里共享了两个目录分别如下

workspace_share
box_share

下面的脚本中会用到,下面说下挂载问题。

启用共享文件夹后,除默认位置 /mnt/hgfs 外,您还可以将共享文件夹中的一个或多个目录/子目录装载到文件系统中的任意位置。

使用 mount 命令可将所有共享、某一个共享或共享中的某个子目录装载到文件系统的任意位置。

装载命令语法

命令    说明
mount -t vmhgfs .host:/ /home/user1/shares    将所有共享装载到 /home/user1/shares
mount -t vmhgfs .host:/foo /tmp/foo    将名为 foo 的共享装载到 /tmp/foo
mount -t vmhgfs .host:/foo/bar /var/lib/bar    将共享 foo 中的子目录 bar 装载到 /var/lib/bar

除标准 mount 语法外,您可以使用 VMware 的特定选项。要获得“主机-客户机”文件系统选项的用法信息,请键入命令

/sbin/mount.vmhgfs -h。

安装 VMware Tools 时会向 etc/fstab 添加一个条目,用于指定共享文件夹的位置。您可以编辑该文件以更改或添加条目。例如,要在启动时自动装载,可编辑 /etc/fstab 并添加以下行:

.host:/ /mnt/hgfs vmhgfs defaults 0 0

VMware Tools 服务脚本会加载执行装载操作的驱动程序。如果装载失败,将显示一条关于装载 HGFS 共享的消息。

下面是我写init脚本实现开机自动挂载

/etc/init.d/mount-shared-path

#!/bin/bash


### BEGIN INIT INFO
# Provides:          evenvi.com
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

vmhgfs-fuse .host:/workspace_share /root/workspace_share
vmhgfs-fuse .host:/box_share /root/box_share
echo 'hello, world' >> /tmp/boot.log

iptables对数据包的过滤和处理流程

Publish: October 24, 2019 Category: 运维 No Comments

关键概念理解

表:

表是iptables构建块,它描述了其他功能大类。iptales中共有四个表。
如下:

表名 作用 关键链
filter 过滤规则 INPUTOUTPUTFORWARD
net NAT规则 PREROUTINGPOSTROUTING
mangle 修改分组数据 
raw 独立于Netfilter链接规则跟踪起作用 

阅读剩余部分...

使用LNMP构建Linux+PHP+OpenResty+MySQL环境

Publish: September 9, 2019 Category: 运维 No Comments

LNMP作为中小型WEB应用构建方案得到了的很广泛的应用。LNMP顾名思义就是Linux+Nginx+MySQL+PHP,过去十年时间(Nginx09年发布第一个开发版),作为一种近乎经典的WEB服务构建方案,受到广大开发者的青睐。

LNMP脚本让本来复杂的环境构建任务变得轻松,运维人员只需下载脚本、执行、选择几个版本等配置,后面的编译配置都由脚本自动化完成。我引用了官方的几点说明如下:

无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化。

支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成LetseEcrypt证书、LNMP模式支持多PHP版本、支持单独安装Nginx/MySQL/MariaDB/Pureftpd服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件Redis/Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

阅读剩余部分...

简单例子讲明白Redis事务

Publish: June 26, 2019 Category: 运维 1 Comment

熟悉关系型数据库的同学对应该对事务比较了解,简单的说:事务表示一组动作,要么全部执行,要么全部不执行。还是用经典的银行转帐来做说明,用户a要给用户b转一笔款,正确的执行流程是a账户减少指定金额,b账户增加指定金额。这两个动作要么同时执行,要么都不执行才能保证数据的准确性,以保证数据一致。

Redis事务理解和示例

Redis提供了“简单”的事务,将一组需要一起执行的命令放到multi和exec两个命令之间,multi代表事务开始,exec代表事务结束,他们之间的命令是原子顺序执行的。我们一转帐来进行模拟这个过程:

#设置用户a和b的额度都是100

127.0.0.1:6379> set user:a:quota 100
OK
127.0.0.1:6379> set user:b:quota 100
OK
#执行转帐事务:a减掉20 b增加20
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> DECRBY user:a:quota 20
QUEUED
127.0.0.1:6379> INCRBY user:b:quota 20
QUEUED
127.0.0.1:6379> EXEC
1) (integer) 80
2) (integer) 120

#查看执行结果

127.0.0.1:6379> MGET user:a:quota user:b:quota
1) "80"
2) "120"

可以看到decrby和incrby命令返回结果都是QUEUED,代表命令并没有真正执行,而是暂时保存在redis中,当exec命令执行之后转帐行为才算完成。如果要停止执行该事务可以使用discard命令代替exec命令即可。

阅读剩余部分...

最简单的Redis可视化管理工具phpRedisAdmin

Publish: May 22, 2019 Category: 运维 1 Comment

redis是一个开源的,内存数据结构存储,用于数据库、缓存和消息代理。支持字符串(strings)、哈希、列表、集合、带有范围查询的有序集合(sorted sets)、bitmaps、hyperloglogs、具有半径查询的地理空间索引 (geospatial)和流(streams)等功能。其高性能、开源、简单易用的特性受到广大开发者的青睐,在我们的日常应用中却没有一个很简单易用的可视化客户端。但是为web程序员来说phpRedisAdmin是一个不错的选择,下面我们来介绍如何使用phpRedisAdmin。

安装&配置

phpRedisAdmin是一个web版的BS架构的redis可视化管理工具,因此需要有web服务器,从名字里可以看出其依赖于php环境,这里我们选用经典的lnmp方案。规划好web目录,使用下面两种方式来安装。

  • composer方式

如果使用composer包管理工具,可以直接执行下面两条命令

curl -s http://getcomposer.org/installer | php
php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin path/to/install

阅读剩余部分...