分类 全栈工程师 下的文章

下载extjs必须的环境安装包,cmd、extjs-sdk
extjs目录下,进入templates目录,可以看到admindashboard模板,在项目外层目录直接基于模板创建项目:
sencha --sdk=/Volumes/Data/Projects/extjs-project/ext-7.5.0 generate app -s /Volumes/Data/Projects/extjs-project/ext-7.5.0/templates/admin-dashboard chengezhao cez-v2-frontend
创建完项目如果出现:
@theme-background-image: Theme image not found
是因为模板app.json文件的路径问题没有更新,将下列代码进行修改

"output": {
    "base": "${ext.dir}/build/examples/admin-dashboard/${build.id}",
    "page": "../index.html",
    "manifest": "../${build.id}.json",
    "appCache": {
        "enable": false
    }
},

修改为:

"output": {
    "base": "${workspace.build.dir}/${build.environment}/${app.name}",
    "page": "index.html",
    "manifest": "${build.id}.json",
    "js": "${build.id}/app.js",
    "appCache": {
        "enable": false
    },
    "resources": {
        "path": "${build.id}/resources",
        "shared": "resources"
    }
},

进入项目目录cez-v2-frontend,运行:
sencha app watch
即可启动项目

3589 brew list php
3590 brew info php74
3591 brew info php@74
3592 brew info php@7.4
3593 brew services stop php@7.3
3594 brew services start php@7.4
3595 php -v
3596 composer install
3597 composer upgrade
3598 composer install
3599 cd /Users/wayson/Documents/coe/dataadmin
3600 clear
3601 php -v
3602 brew install php74
3603 brew install php@7.4
3604 echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
3605 echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
3606 export LDFLAGS="-L/usr/local/opt/php@7.4/lib"
3607 export CPPFLAGS="-I/usr/local/opt/php@7.4/include"
3608 brew services restart php@7.4
3609 php -v
3610 source
3611 source LDFLAGS
3612 brew info php@7.4
3613 /usr/local/etc/php/7.4/
3614 php -v
3615 cd
3616 php -v
3617 brew unlink php73
3618 brew unlink php@7.3
3619 brew link php@7.4
3620 php -v

将证书下载下来,两个文件传上服务器,放在方便自己管理的地方
修改nginx配置文件,添加下面的配置:

以下属性中,以ssl开头的属性表示与证书配置有关。

server {

listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
root html;
index index.html index.htm;
ssl_certificate cert/cert-file-name.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
    root html;  #站点目录。
    index index.html index.htm;
}

}

如果需要让http自动跳转https,可以配置:

server {

listen 80;
server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
location / {
    index index.html index.htm;
}

}

配置完成重载nginx配置:
cd /usr/local/nginx/sbin #进入Nginx服务的可执行目录。
./nginx -s reload #重新载入配置文件。

如果是非nginx服务配置ssl的,可以参考阿里的文档:
https://help.aliyun.com/document_detail/198938.html

直接安装需要的版本:
brew install openjdk@8
查看安装位置:
brew info openjdk@8
修改环境变量:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home"
如果使用zsh,执行:
source ~/.zshrc
查看当前java
java -version

1635729049858.jpg
综合起来,在压缩比率上: tar.bz2>tgz>tar
占用空间与压缩比率成反比: tar.bz2<tgz<tar
耗费时间(打包,解压)
打包:tar.bz2>tgz>tar
解压: tar.bz2>tar>tgz
从效率角度来说,当然是耗费时间越短越好
Linux下对于占用空间与耗费时间的折衷多选用tgz格式(tar包进行gzip算法的压缩),不仅压缩率较高,而且打包、解压的时间都较为快速,是较为理想的选择。
压缩:
tar -zcvf examples.tgz examples (examples当前执行路径下的目录)
解压缩:
tar -zxvf examples.tgz -C /path (/path 解压至其它路径)

查询某个字段重复的记录:
select * from TableA where b in (select b from TableA group by b having count(b) > 1)

查询某个字段重复的次数:
select sys_update_time,count(*) as count from gczb_packages_bidders group by sys_update_time
having count>100

insert into + select + join搭配使用:
insert into user_has_role(user_id, role_id) select * from(select a.id,2 from others_irp_user a left join user_has_role b on a.id=b.user_id where b.role_id is null) as tb

update + select + join搭配使用:
update output_list a
left join approve b on a.aid=b.id
left join others_irp_project c on a.pid = c.id
set b.is_loan_check = 1,b.is_filling_check = 1
where b.is_loan_check = 0 or b.is_filling_check = 0

查询updatetime字段值一样的数据,更新update,保证updatetime数据不重复,逐个累加:
set @r:=1495181783;
update gczb_agreements set last_update_time=FROM_UNIXTIME((@r:=@r+1)) where last_update_time in (select last_update_time from gczb_agreements group by last_update_time having count(last_update_time) > 300);

获取某个数据库表的所有索引生成创建sql:
SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ','ADD ',IF(NON_UNIQUE=1,CASE
UPPER(INDEX_TYPE)
WHEN'FULLTEXT'THEN'FULLTEXT INDEX'
WHEN'SPATIAL'THEN'SPATIAL INDEX'ELSE CONCAT('INDEX ',INDEX_NAME,' USING ',INDEX_TYPE)
END,IF
(UPPER(INDEX_NAME)='PRIMARY',CONCAT('PRIMARY KEY USING ',INDEX_TYPE),CONCAT('UNIQUE INDEX ',INDEX_NAME,' USING ',INDEX_TYPE))),'(',GROUP_CONCAT(DISTINCT CONCAT('',COLUMN_NAME,'')ORDER BY SEQ_IN_INDEX ASC SEPARATOR', '),');')AS'Show_Add_Indexes'
FROM
information_schema.STATISTICS
WHERE
TABLE_SCHEMA='数据库名称'
AND TABLE_NAME='表名'
GROUP BY
TABLE_NAME,INDEX_NAME
ORDER BY
TABLE_NAME ASC,INDEX_NAME ASC;

1、背景:日常工作中经常会遇到磁盘空间不足的情况,在服务器磁盘不足的情况中通常使用最快以及最灵活的lvm扩容方式进行

2、问题:如何通过lvm扩容磁盘,一般形式通过fdisk初始化挂载硬盘,然后通过pvc及vge相关命令进行相关磁盘格式处理,最后完成挂载

3、处理方法
通过fdisk命令初始化挂载的硬盘(fdisk /dev/vda)并且输入n进入新增磁盘步骤。Partition type部分输入p新增磁盘,随后进入选择分区号,可以直接回车默认分区号(此时需记录对应分区号,后面找磁盘方便),紧接着进入扇区编辑步骤,可根据需要扩容大小分配起始扇区及last扇区,完成后此两数值差为此磁盘大小。完成以上步骤后输入w保存所有操作,如操作过程有误可按ctrl c退出命令不保存相关操作。至此为之已完成磁盘初始化,此时需重启电脑重新挂载该磁盘生效相关配置。重启完毕后可以通过lsblk或者df -h找到分区后磁盘名字如vda3,此时可通过pvcreate 对应磁盘名字(/dev/vda3)进行pv创建。创建完毕后需查看需扩容磁盘所属group,查询完毕后通过命令vgextend创建vg(vgextend centos(此为查询得到的group) /dev/vda3)。挂载完毕后可通过命令lvdisplay查看所有lvm状态。查看之后通过命令lvextend将新磁盘挂载入需扩容磁盘同一目录(lvextend /dev/centos/home(此为需扩容磁盘目录) /dev/vda3(此为新建磁盘) -L +900G(此为需要扩容的对应磁盘大小))。完成后通过命令xfs_growfs刷新磁盘(xfs_growfs /dev/mapper/centos-home(此为需扩容磁盘目录))。至此完成磁盘扩容所有步骤,可再次通过命令lsblk或df -h查看磁盘大小。

4、问题思考
由于lvm方式扩容简单且灵活,但一旦磁盘出现故障很难进行恢复或拆分等操作,因此该模式也存在一定风险,所以对于重要服务器一般创建磁盘时就需分配足够磁盘空间,同时定时做好备份。

1、背景:日常工作中对于磁盘的维护所需技术储备其实非常多且杂,由于磁盘为系统根本,磁盘一旦出现故障或问题则将对系统造成一定的破坏及风险。因此对于磁盘的日常维护相当重要。

2、
问题1:如何查找磁盘最大文件或目录
处理1:可通过命令(du -h -x -d 1 /var|sort -h)查看对应目录下文件及文件夹大小并进行排序,其中/var为对应目录
问题2:如何linux环境下格式化u盘
处理2:首先通过命令df -h或lsblk查看插入u盘所挂载名字如sdb,查看之后通过命令mkfs.vfat -I /dev/sdb格式化,其中/dev/sdb为挂载u盘所在位置,-I为强制格式化
问题3:如何通过命令创建GPT格式的超过10t的硬盘
处理3:由于正常MBR格式硬盘最多只能初始化2T大小,对于超过2T大小硬盘则只能读取到2T大小,因此需要将硬盘格式化为GPT格式才可读取超过2T大小硬盘。首先我们通过命令parted(parted /dev/sdb(此为硬盘目录))进入格式化,接着输入命令mklabel GTP执行GPT格式的格式化,接着输入y确定。完成后输入mkpart进行分区操作,分区名称输入磁盘名加分区号(sdb1),接着文件类型建议默认ext2,然后进入确定扇区步骤,起始点与结束点数值之差为此磁盘大小,完成此步骤后需要等待,此等待时间视扇区大小变化。输入完毕后输入p保存所有操作,如中间存在错误操作可通过ctrl c退出。保存后输入quit推出parted。至此完成格式化所有操作。

3、问题思考
由于其磁盘的重要性,在对磁盘进行操作时每一步都需要慎之又慎,在进行操作前最好经过测试或对所有流程有一定熟悉度。同时进行高危操作时(如dd命令可直接对磁盘进行读写同时无法回退)命令最好找有经验人士确认无误后再操作。

服务器带宽一般指服务器
登录深信服后台查看服务器流量监控,可以看到统计数据是以Kbps为单位,
先理解一下:
Mbps 即 Milionbit pro second(百万位每秒);
Kbps 即 Kilobit pro second(千位每秒);
bps 即 bit pro second(位每秒);

bit即比特,通常用b(小写)表示,指一位二进制位,1Milionbit=1000Kilobit=1000000bit
所以1Mbps=1000000bps;

MB即百万字节也称兆字节;
KB即千字节;
B即字节;
之间关系为1MB=1024KB=1024*1024B;
1B=8b;

所以1M带宽即指1Mbps=1000Kbps=1000/8KBps=125KBps;
因此1M的带宽下载的速度一般不会超过125KB每秒。

对于云服务器而言,所谓带宽50M,一般指上行带宽是50M,下行不限制,上行指客户端是指50Mbps=50000Kbps,计算带宽理论最快下载速度:50÷8=6.25 MB/s,那么50M的带宽最快下载速度是6.25MB/s

线上有个查询sql,原来是没有join查询没有问题,后来应业务要求改成left join之后, 查询时间就暴涨了 需要长达17s

通过explain分析,发现订单表没有走索引:
分析结果显示有两个表type都是All
2021-03-22 13-47-38 的屏幕截图.png

于是猜测事索引没有加上,给所有where条件和left join on用到的字段都加上索引
再测,发现b表还是为All,讲道理,这个时候索引应该出发了才对,这时候我尝试给这个b.sub_acc_no这个表字段加到where条件里,发现执行变快了,但是explain发现type仍然为All,我都指定sub_acc_no的值了,type讲道理应该是ref了至少,这个时候基本能断定是所以失效了,开始查两个表字段差异,发现编码不一致,修改为一致后再explain:
2021-03-22 13-59-52 的屏幕截图.png
结论,如果两张表的编码和字段编码不一致,会导致索引失效

首先要知道影响在线人数的因素

1,访问量

2,网站类型:对于大多数的网站站长而言,网站的类型和性质是有所不同的,比如有小说站、论坛站、视频网站以及企业站等,那么相对来说论坛和小说站的访问量会比较大,视频网站的浏览和下载也比较耗用服务器的带宽资源,而普通企业站通常访问量比较少,所以不同的网站所需求的带宽大小也是不同的。如果是出文字的网站(如小说站),1M带宽带动日均5000IP,勉强可以。如果是普通网站有图片,有文字、论坛、新闻资讯类型网站 大概1M能带一千IP。考虑到高峰期并发,1M高峰期还会卡。

以下列子根据影响因素计算下1M带宽能同时承受多少人在线(以网络状况良好为前提)

1)、 打开网站8秒原则;

2)、 评判的只是:用户从服务器下载文件的速度;

3)、 页面的标准尺寸大小为:60KB;

参考公式:支持连接个人 = 服务器带宽/页面尺寸大小

通过计算大致结果是,1Mbps的带宽(服务器的1M带宽最快上下速度能达到1M/s,跟我们家用的带宽稍有区别)支持的连接数为:17个

因此,N M带宽可以支持的同时在线人数大概为N*17个

所以,1M带宽的云主机,日均3000IP以下应该没问题。当然如果你的每个页面都比较大的话,那就没这么多了。具体多少,可以按照上面的算法算下。

如果说服务器带宽说的5M带宽,实际上是5Mbps=625KB,需要是独享带宽,共享的话因为他人的因素无法计算。

然后计算你的网站大小,普通大小的网站页面(图片少,压缩过,代码优化)只有几K,我们姑且按照50K计算。

同时在线人数其实还关系到 IIS 这个参数限制,但是小网站几乎没有这个限制,可以不用担心,所以 625kb/50k=12.5人,大概同时在线12.5人访问这个50KB的页面是没有问题的。

要值得注意,这个是同时,也就是传统意义上的同一秒,只要有先后发送请求的顺序就可以错开,所以5M带宽严格意义上是很大的,如果你的页面小,几乎可以满足千人在线。

以上就是互联先锋推荐估算服务器带宽常用的方法,各位朋友可以参考选择更为适合自己需求的服务器带宽大小,减少不必要的带宽费用成本。

之前的php71是由remi源提供安装
先卸载php和相关的插件
yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64
检查是否卸载干净
yum list installed |grep php
选择php73
yum-config-manager --enable remi remi-php73
yum makecache -y
yum install -y httpd php php-gd php-mcrypt php-mbstring php-xml php-json php-mysqlnd php-pdo-mysql php-pecl-redis

对所有系统用户生效,永久生效

修改 /etc/profile 文件,在文件末尾加上如下两行代码(记得添加的是文件夹路径)
PATH=$PATH:/root/bin/Sencha/Cmd/6.6.0.13
export PATH

最后执行命令 source /etc/profile 或执行点命令 ./profile 使其修改生效。

使用yum安装mysql后,先启动mysql服务

查看mysql密码:
grep 'temporary password' /var/log/mysqld.log

使用临时密码登陆:
mysql -uroot -p

修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';

如果需要的话,可以授权其他机器访问:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH  PRIVILEGES;

中文显示问题:
修改start_navicat文件
找到export LANG=en_US.UTF-8修改字符集: export LANG=zh_CN.UTF-8
试用到期问题:
直接删除 /home目录下的 .navicat文件夹(此文件夹隐藏)
64位
rm -rf .navcat64
接下来重新启动navicat就可以了,它会自动重新安装一遍,并且试用期重新计时
此上做法为学习交流使用。正常使用,请购买正版

  1. yum install samba
  2. vi /etc/samba/smb.conf =>再最后添加内容

    [public]

    comment = Public Stuff
    path = /home/wayson
    public = yes
    read only = Yes
    valid users = wayson

public为共享文件夹显示出来的名称
path为具体共享的文件夹
valid users为可访问的用户名
确保用户名和文件夹路径已经存在

  1. smbpasswd -a wayson 设置共享用户密码
  2. 关闭防火墙: systemctl stop firewalld
    修改系统运行级别: 我是本地电脑桌面直接修改/etc/sysconfig/selinux,设置SELINUX=disabled