Rootop 服务器运维与web架构

2018-09-29
发表者 Venus
redis实现目录层级结构存储已关闭评论

redis实现目录层级结构存储

想实现层级目录存储key,类似/project/func/username 这种方式存储。
在redis中set key的时候把目录层级用冒号连接,如
/a/b/c/username的key值为simon

127.0.0.1:6379> set a:b:c:username simon
OK
127.0.0.1:6379> get a:b:c:username
"simon"

2018-09-25
发表者 Venus
如何取得传入shell脚本的第i个值?要求i循环到几就取第几个参数已关闭评论

如何取得传入shell脚本的第i个值?要求i循环到几就取第几个参数

百度知道的一个问题,需求是:如何取得传入shell脚本的第i个值?要求i循环到几就取第几个参数。
开始想用shell下的$$i获取第几个参数,试了一下发现不行。
有点类似php下的$$var方式获取值。

<?php
$a = 'b';
$b = 2;
$c = $$a;
echo $c;

结果为 2

后来想出用数组方式,通过for循环,然后索引减1的方式获取。shell数组索引也是从0开始。

[root@machine1 ~]# cat a.sh 
#!/bin/bash
total=$#
array=($*)
for ((i=1;i<=$total;i++));
do
    echo "传递参数位:"$i
    echo "对应值:"${array[$i-1]}
done
[root@machine1 ~]# sh a.sh a b c d e
传递参数位:1
对应值:a
传递参数位:2
对应值:b
传递参数位:3
对应值:c
传递参数位:4
对应值:d
传递参数位:5
对应值:e

这样就实现了需求。

2018-09-20
发表者 Venus
jenkins控制台输出中文显示问号已关闭评论

jenkins控制台输出中文显示问号

Started by GitLab push by ???

Commit message: “???”

原因还是因为jenkins运行在docker容器里,容器又不支持中文,需要手动安装中文支持。

参考:https://www.rootop.org/pages/4100.html

2018-09-19
发表者 Venus
docker容器下中文文件夹显示问号,http访问返回404已关闭评论

docker容器下中文文件夹显示问号,http访问返回404

由于保存上传文件的目录是中文,导致在url访问的时候报404
推测是docker容器没有安装中文。容器里ll目录也是问号(容器镜像属于精简了,没有中文包)

查看是否有中文支持:

[root@report ~]# locale -a | grep zh_CN

安装中文包:

[root@report ~]# yum -y install kde-l10n-Chinese
[root@report ~]# yum -y reinstall glibc-common # 可以先不执行试试
[root@report ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

修改:

[root@report ~]# vi /etc/locale.conf
LC_ALL="zh_CN.utf8"

修改:

[root@report ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.utf8"
LC_ALL="zh_CN.utf8"

# 设置环境变量,添加下面两行

[root@report ~]# cat /etc/profile
export LANG="zh_CN.utf8"
export LC_ALL="zh_CN.utf8"

然后在启动tomcat之前先 source /etc/profile 再启动
这样url中有中文的话访问就正常了。

2018-09-19
发表者 Venus
centos7下挂载阿里云oss服务已关闭评论

centos7下挂载阿里云oss服务

当批量删除文件的时候一个一个选比较费时间,所以想挂载到系统下,通过通配符批量删除。

参考官方文档:https://www.alibabacloud.com/help/zh/doc-detail/32196.htm

里面有rpm的安装包,下载下来。

# 安装 ossfs
yum install -y fuse fuse-libs
rpm -ivh ossfs_1.80.3_centos7.0_x86_64.rpm

# 配置 身份验证
echo aladinn:xxxx:xxx > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

# 在centos下创建挂载点
mkdir /home/oss

# 挂载
ossfs aladinn /home/oss -ourl=oss-cn-qingdao.aliyuncs.com # 外网
ossfs aladinn /home/oss -ourl=oss-cn-qingdao-internal.aliyuncs.com # 内网

# 卸载
fusermount -u /home/oss/