• Jmeter系列(39)- Jmeter 分布式测试
     把上面的动图完整看完,就懂了,原理如下:Master 是控制机,Slaves 是多个压力机,Target 是被测系统分布式测试中,Master 通过命令行将测试脚本分发给所有 SlaveSlave 不需要启动 Jmeter GUI,通过 CLI 模式执行测试Slave 执行完后,会把结果回传给 MasterMaster 收集所有 Slave 的结果并汇总成一个结果集 注意压力机也可以叫:负载机、代理机、执行机、奴隶机、肉鸡....各种各样的名字,但他们都是 SlaveMaster 也可以执行测试脚本,也可以不执行只负责管理 场景类比一个测试部门有一个部门经理,五个测试小弟有个巨型测试任务由部门经理划分好模块后分发给五个测试小弟去测试五个小弟测试完,会各自发送测试报告给部门经理部门经理把所有测试报告汇总成一份,发给公司大佬看而部门经理可以参与测试,也可以不参与测试只负责管理部门 分布式专用术语认知 实现分布式的前提条件控制机和压力机的 jmeter 要一致具体体现在jmeter 版本要一致jdk 主版本要一致(1.7、1.8...)jmeter 脚本中,csv 文件要一致jmeter 的插件要一致同一局域网,防火墙开放端口  csv 文件一致主要是数据和路径要一致 保证一致性方法直接将控制机的 jmeter 压缩包移到每个压力机上解压使用 压力机配置注意:压力机系统不限,可以是win、mac、linux 前置步骤将控制机的 jmeter 压缩包发送到压力机,解压 修改 jmeter.properties(下面三步走)进入 bin 目录  
  • [交流吐槽] 文件服务备份
    提供对云硬盘、弹性云服务器、裸金属服务器和云下VMware服务器的备份保护服务,同时还新支持了对弹性文件服务中的SFS Turbo文件系统进行备份。完成SFS Turbo文件系统备份后,如果发生误操作、误删除数据、病毒入侵等时,即可使用备份一键创建与备份时间点一模一样的文件系统。
  • [技术讨论] 开始一个简单的接口测试(Python)
    利用python发送第一个请求关于HTTP请求,建议大家提前了解一下,再来看该篇文章该篇文章以简单的登录接口为例,干货来了:首先利用python发请求就会用到request库,先导入进来import requests1导入该库之后,就开始代码主体部分了#首先我们要把我们要测试接口API写进来url="http://localhost:8080/jwshoplogin/user/login.do"#紧接着把我们需要的参数定义一下userinfo={"username":"大娟",           "password":"Aa111111"}#参数定义完成后,就该让这个请求带着这个参数去乖乖的请求服务器了,下面的代码意思为将响应回来的信息以文本格式给到resres=requests.post(url,data=userinfo).text#得到响应信息后,将他打印出来print(res)这个为该接口正常响应回来的信息,作为测试我们当然要写个断言来判断他响应回来的对不对嘛,#.find这个方法是在响应回来的信息里面找登录成功四个字,找不到会返回-1负一的值msg=res.find("登录成功")if msg>0:    print("测试通过")else:    print("测试失败")一个简单的接口测试就这么完成了。将请求参数进行参数化处理这时候我们用到的是csv文件,现将csv库倒进来,还有我们必要的request库import requestimport csv下面是代码主体,具体解释我会写进代码里url='http://localhost:8080/jwshoplogin/user/login.do'#上面url就不解释了,但是userinfo我要说下,这里为空是因为我一会在文件里读取的内容放到这里面userinfo={}#下面的两个是对文件的操作,r为对文件读(read),w为对文件写(write)file1=open("interfacePara.csv",'r')file2=open("loginResult.csv","w")#这个意思为将读出来的内容放到table里面table=csv.reader(file1)for row in table:#第一次循环#将读到的第一行第一列的值给到username    userinfo["username"]=row[0]#将读到的第一行第二列的值给到password    userinfo["password"]=row[1]#这时候userinfo拿到的值为username="大娟",password="Aa111111"    response=requests.post(url,data=userinfo).text#查看一下响应回来的信息    print(response)    print(row[2]) #在响应回来的信息里面找csv文件里的第一行第三列的值,然后做判断,写到文件loginResult.csv里面    r=response.find(row[2])    if r>0:        print("测试通过") #因为在csv文件里每个分割是用逗号分割的所以这个要加上逗号,而且是英文格式的大家不要搞错,"\n"是换行的意思        file2.write(row[0]+","+row[1]+","+row[2]+","+"测试通过"+"\n")    else:        print("测试异常")        file2.write(row[0] + "," + row[1] + "," + row[2] + "," + "测试失败" + "\n")
  • [问题求助] 请问SFS怎么保证可靠性
    未上华为云之前,产品自己部署双机NFS SERVER保证存储可靠性,当前查看SFS文档,未发现相关可靠性手段,请问SFS如果选择了NFS协议,是否只是单机部署,怎么保证其可靠性呢
  • [技术干货] 文件同步和共享您的文件
    介绍海归是一个开源、自托管、文件同步和共享的平台。用户可以在自己的服务器上存储和可选地加密数据,存储空间是唯一的限制。使用 Seafile,您可以使用跨平台同步和密码保护的链接共享文件和文件夹,以共享具有到期日期的文件。文件版本功能意味着用户可以恢复已删除和修改的文件或文件夹。在此教程中,您将在 Ubuntu 20.04 服务器上安装和配置 Seafile。您将使用 MariaDB 存储海文件不同组件的数据,而 Apache 作为代理服务器来处理 Web 流量。完成此教程后,您将能够使用 Web 界面从桌面或移动客户端访问 Seafile,允许您与服务器上或与公众的其他用户或组同步和共享文件。先决条件在开始此指南之前,您需要以下几点:一个Ubuntu 20.04服务器与最低2GB的RAM设置遵循此初始服务器设置Ubuntu 20.04教程,包括一个sudo非根用户和一个防火墙。安装和配置了马里亚德数据库服务器。按照如何在Ubuntu 20.04 教程上安装 MariaDB中的步骤。阿帕奇网络服务器与虚拟主机配置为注册域名以下如何安装阿帕奇网络服务器在Ubuntu 20.04.通过以下"如何通过在 Ubuntu 20.04 教程上加密"让我们加密来保护 Apache",安装在服务器上的SSL 证书。完全注册的域名。此教程将贯穿始终。your_domain为您的服务器设置的以下两个 DNS 记录。您可以按照此介绍数字海洋 DNS了解如何添加它们的详细信息。指向服务器公共 IP 地址的记录。your_domain指向服务器公共 IP 地址的记录。www.your_domain第 1 步 - 为海文件组件创建数据库海文件需要三个组件才能正常工作。这三个组件是:Seahub: 海文件的网络前端, 用Django网络框架用 Python 写成。从 Seahub,您可以使用 Web 浏览器访问、管理和共享您的文件。海文件服务器:管理原始文件上传、下载和同步的数据服务。您不会直接与服务器交互,而是使用其中一个客户端程序或 Seahub 网络界面。Ccnet 服务器: RPC 服务护蒙, 使海文件的不同组件之间的内部通信。例如,当您使用 Seahub 时,它能够使用 Ccnet RPC 服务从 Seafile 服务器访问数据。这些组件中的每一个都将其数据单独存储在自己的数据库中。在此步骤中,您将创建三个 MariaDB 数据库和一个用户,然后再继续设置服务器。首先,使用带有用户名和 IP 地址的 SSH 登录服务器:ssh sammy@your_server_ip作为管理员连接到马里亚德数据库服务器(根):sudo mariadb在 MariaDB 提示下,使用以下 SQL 命令创建数据库用户:CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';接下来,您将创建以下数据库来存储三个海文件组件的数据:ccnetdb用于Ccnet服务器。seahubdb为海胡布网络前端。seafiledb用于海文件文件服务器。在 MariaDB 提示下,创建您的数据库:CREATE DATABASE `ccnetdb` CHARACTER SET = 'utf8';CREATE DATABASE `seafiledb` CHARACTER SET = 'utf8';CREATE DATABASE `seahubdb` CHARACTER SET = 'utf8';然后,授予 Seafile 数据库用户访问这些数据库并进行更改的所有特权:GRANT ALL PRIVILEGES ON `ccnetdb`.* to `sammy`@localhost;GRANT ALL PRIVILEGES ON `seafiledb`.* to `sammy`@localhost;GRANT ALL PRIVILEGES ON `seahubdb`.* to `sammy`@localhost;通过键入退出马里亚德布提示:exitexit现在,您已经创建了存储每个 Seafile 组件数据所需的用户和数据库,您将安装海文件服务器包配置所需的依赖项。步骤2-安装依赖项和下载海文件Seafile 的某些部分以 Python 编写,因此需要额外的 Python 模块和程序才能工作。在此步骤中,您将在下载和提取 Seafile 服务器包之前安装这些所需的依赖项。首先,安装点-Python包经理。相应的德比安包被称为。您可以使用:python3-pipaptsudo apt install -y python3-pip一旦点安装,您可以使用命令从 Python 包索引 (PyPI) 中安装其他依赖项:pip3pip3 install Pillow captcha django-simple-captcha注意:使用上述命令是没有必要的。这些包将安装在用户的家庭目录下,因此不需要根特权。sudopip3 installsammy/home/sammy/.local/lib/python3.8/site-packages海文件要求,一个用于图像处理的巨蛇库,并提供captcha认证支持。Pillowcaptchadjango-simple-captcha现在,您已经安装了必要的依赖项,您可以下载 Seafile 服务器包。海文件在设置过程中创建其他目录。要保持所有这些组织,创建一个新的目录并更改为它:mkdir seafilecd seafile现在,您可以通过运行以下命令从网站下载 Seafile 服务器的最新版本(截至本文撰写时):7.1.4wget https://download.seadrive.org/seafile-server_7.1.4_x86-64.tar.gzSeafile 将下载分发为压缩焦油存档,这意味着您需要在继续之前提取下载。使用:tartar -zxvf seafile-server_7.1.4_x86-64.tar.gz现在更改为已提取的目录:cd seafile-server-7.1.4在此阶段,您已下载并提取了 Seafile 服务器包,并安装了必要的依赖项。您现在已准备好配置海文件服务器。步骤3-配置海文件服务器在第一次启动服务之前,Seafile 需要有关您的设置的一些信息。这包括域名和数据库配置等详细信息。要启动提供此信息的一系列问题提示,您可以运行脚本,该脚本包含在您在前一步中提取的存档中。setup_seafile_mysql.sh使用:bashbash setup-seafile-mysql.sh按下继续。ENTER脚本现在将提示您一系列问题。如果提到默认值,按键将使用该值。ENTER此教程用作服务器名称,但如有必要,您可以更改它。SeafileWhat is the name of the server? It will be displayed on the client. 3 - 15 letters or digits [ server name ] Seafile接下来,输入此海文件实例的域名。What is the ip or domain of the server?. For example: www.mycompany.com, 192.168.1.101 [ This server's ip or domain ] your_domain对于文件处理器端口,按接收默认值。ENTERWhich port do you want to use for the seafile fileserver? [ default "8082" ]下一个提示允许您确认数据库配置。您可以创建新的数据库或使用现有的数据库进行设置。对于此教程,您在步骤 1 中创建了必要的数据库,请在此处选择选项。2------------------------------------------------------- Please choose a way to initialize seafile databases: ------------------------------------------------------- [1] Create new ccnet/seafile/seahub databases [2] Use existing ccnet/seafile/seahub databases [ 1 or 2 ] 2其余问题涉及马里亚德数据库服务器。您只需要提供您在第1步中创建的mariadb用户的用户名和密码。按下以接受默认值和 。ENTERhostportWhat is the host of mysql server? [ default "localhost" ] What is the port of mysql server? [ default "3306" ] Which mysql user to use for seafile? [ mysql user for seafile ] sammyWhat is the password for mysql user "seafile"? [ password for seafile ] password在提供密码后,脚本将请求海文件数据库的名称。使用,并用于此教程。然后,脚本将验证是否与数据库成功连接,然后继续显示初始配置的摘要。ccnetdbseafiledbseahubdbEnter the existing database name for ccnet: [ ccnet database ] ccnetdbverifying user "sammy" access to database ccnetdb ...  done Enter the existing database name for seafile: [ seafile database ] seafiledbverifying user "sammy" access to database seafiledb ...  done Enter the existing database name for seahub: [ seahub database ] seahubdbverifying user "sammy" access to database seahubdb ...  done --------------------------------- This is your configuration ---------------------------------     server name:            Seafile     server ip/domain:       your_domain     seafile data dir:       /home/sammy/seafile/seafile-data     fileserver port:        8082     database:               use existing     ccnet database:         ccnetdb     seafile database:       seafiledb     seahub database:        seahubdb     database user:          sammy-------------------------------- Press ENTER to continue, or Ctrl-C to abort ---------------------------------按下以确认。ENTEROutputGenerating ccnet configuration ... done Successly create configuration dir /home/sammy/seafile/ccnet. Generating seafile configuration ... done Generating seahub configuration ... ---------------------------------------- Now creating seahub database tables ... ---------------------------------------- creating seafile-server-latest symbolic link ...  done ----------------------------------------------------------------- Your seafile server configuration has been finished successfully. ----------------------------------------------------------------- run seafile server:     ./seafile.sh { start | stop | restart } run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> } ----------------------------------------------------------------- If you are behind a firewall, remember to allow input/output of these tcp ports: ----------------------------------------------------------------- port of seafile fileserver:   8082 port of seahub:               8000 When problems occur, Refer to         https://github.com/haiwen/seafile/wiki for information.由于您将在 Apache 后面运行 Seafile,因此无需打开端口和防火墙,因此您可以忽略输出的这一部分。80828000您已完成服务器的初始配置。在下一步中,您将在启动 Seafile 服务之前配置 Apache 网络服务器。步骤4-配置阿帕奇Web服务器在此步骤中,您将配置 Apache Web 服务器,将所有请求转发到 Seafile。以这种方式使用 Apache 允许您使用没有端口号码的 URL,启用 HTTPS 连接到 Seafile,并利用 Apache 提供的缓存功能来获得更好的性能。要开始转发请求,您需要启用 Apache 配置中的模块。此模块为代理 HTTP 和 HTTPS 请求提供了功能。以下命令将启用模块:proxy_httpsudo a2enmod proxy_http注意:此设置还需要 Apache重写和ssl模块。您已经启用了这些模块,作为在先决条件部分列出的第二个 Apache 教程中配置"让我们加密"的一部分。接下来,更新虚拟主机配置,将请求转发到 Seafile 文件服务器和 Seahub 网络界面。your_domain打开文本编辑器中的配置文件:sudo nano /etc/apache2/sites-enabled/your_domain-le-ssl.conf从到的行是作为先决条件的一部分设置的初始 Apache 和"让我们加密"配置的一部分。添加突出显示的内容,以指令开头和结尾:ServerAdminSSLCertificateKeyFileAliasProxyPassReverse/etc/apache2/sites-enabled/your_domain-le-ssl.conf<IfModule mod_ssl.c> <VirtualHost *:443>     ServerAdmin admin@your_domain     ServerName your_domain     ServerAlias www.your_domain     DocumentRoot /var/www/your_domain/html     ErrorLog ${APACHE_LOG_DIR}/your_domain-error.log     CustomLog ${APACHE_LOG_DIR}/your_domain-access.log combined     SSLCertificateFile /etc/letsencrypt/live/your_domain/fullchain.pem     SSLCertificateKeyFile /etc/letsencrypt/live/your_domain/privkey.pem     Include /etc/letsencrypt/options-ssl-apache.conf    Alias /media  /home/sammy/seafile/seafile-server-latest/seahub/media     <Location /media>         Require all granted     </Location>     # seafile fileserver     ProxyPass /seafhttp http://127.0.0.1:8082     ProxyPassReverse /seafhttp http://127.0.0.1:8082     Rewri**gine On     RewriteRule ^/seafhttp - [QSA,L]     # seahub web interface     SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1     ProxyPass / http://127.0.0.1:8000/     ProxyPassReverse / http://127.0.0.1:8000/</VirtualHost> </IfModule>别名指令将 URL 路径your_domain/媒体映射到 Seafile 使用的文件系统中的本地路径。下列指令允许访问此目录中的内容。这些和指令使 Apache 充当此主机的反向代理,分别转发给在本地主机上运行的 Seafile Web 界面和文件服务器的请求。该指令将所有请求传递给未更改的请求,并停止处理进一步的规则()。LocationProxyPassProxyPassReverse//seafhttp80008082RewriteRule/seafhttp[QSA,L]保存并退出文件。测试虚拟主机配置中是否存在任何语法错误:sudo apache2ctl configtest如果它报告,那么您的配置没有问题。重新启动阿帕奇,使更改生效:Syntax OKsudo systemctl restart apache2您现在已配置 Apache 作为海文件文件服务器和 Seahub 的反向代理。接下来,您将在开始服务之前更新 Seafile 配置中的网址。第 5 步 - 更新海文件的配置和启动服务由于您现在使用 Apache 代理到 Seafile 的所有请求,因此在开始 Seafile 服务之前,您需要使用文本编辑器更新目录中 Seafile 配置文件中的网址。conf在文本编辑器中打开:ccnet.confnano /home/sammy/seafile/conf/ccnet.conf修改文件中的设置以指向没有端口号码的新 HTTPS URL,例如:SERVICE_URLUpdate /home/sammy/seafile/conf/ccnet.confSERVICE_URL = https://your_domain添加内容后,保存并退出文件。现在在文本编辑器中打开:seahub_settings.pynano /home/sammy/seafile/conf/seahub_settings.py现在,您可以在文件中添加一个设置,以指定文件服务器正在收听文件上传和下载的路径:FILE_SERVER_ROOTUpdate /home/sammy/seafile/conf/seahub_settings.pySECRET_KEY = "..." FILE_SERVER_ROOT = 'https://your_domain/seafhttp'保存和退出。seahub_settings.py现在,您可以启动海档案服务和海湖界面:cd /home/sammy/seafile/seafile-server-7.1.4./seafile.sh start./seahub.sh start由于这是您第一次启动 Seahub 服务,因此它会提示您创建管理员帐户。为此管理员用户输入有效的电子邮件地址和密码:OutputWhat is the email for the admin account? [ admin email ] admin@your_domainWhat is the password for the admin account? [ admin password ] password-hereEnter the password again: [ admin password again ] password-here---------------------------------------- Successfully created seafile admin ---------------------------------------- Seahub is started Done.在 Web 浏览器中打开并使用 Seafile 管理电子邮件地址和密码登录。成功登录后,您可以访问管理界面或创建新用户。现在,您已经验证了 Web 界面是否正常工作,您可以使这些服务在下一步的系统启动时自动启动。步骤6-启用海文件服务器在系统启动时启动要使文件服务器和 Web 界面在启动时自动启动,您可以创建各自的服务文件并激活它们。systemd为海文件服务器创建服务文件:systemdsudo nano /etc/systemd/system/seafile.service在文件中添加以下内容:Create /etc/systemd/system/seafile.service[Unit] Description=Seafile After=network.target mariadb.service [Service] Type=forking ExecStart=/home/sammy/seafile/seafile-server-latest/seafile.sh start ExecStop=/home/sammy/seafile/seafile-server-latest/seafile.sh stop User=sammyGroup=sammy[Install] WantedBy=multi-user.target在这里,和行指示运行启动和停止海文件服务的命令。该服务将运行作为和。该线路规定,海文件服务将在网络和 MySQL 服务启动后开始。ExectStartExecStopsammyUserGroupAfter保存和退出。seafile.service为 Seahub 网络界面创建服务文件:systemdsudo nano /etc/systemd/system/seahub.service这类似于海文件服务。唯一的区别是,网络界面是在海文件服务后启动的。在此文件中添加以下内容:创建/等/系统/系统/海湖服务[Unit] Description=Seafile hub After=network.target seafile.service [Service] Type=forking ExecStart=/home/sammy/seafile/seafile-server-latest/seahub.sh start ExecStop=/home/sammy/seafile/seafile-server-latest/seahub.sh stop User=sammyGroup=sammy[Install] WantedBy=multi-user.target保存和退出。seahub.service您可以在"理解系统单元"和"单位文件"教程中了解更多有关系统单元文件的信息。最后,要使 Seafile 和 Seahub 服务都能在启动时自动启动,可运行以下命令:sudo systemctl enable seafile.servicesudo systemctl enable seahub.service当服务器重新启动时,Seafile 将自动启动。此时,您已完成设置服务器,现在可以测试每个服务。第 7 步 - 测试文件同步和共享功能在此步骤中,您将测试已设置的服务器的文件同步和共享功能,并确保它们正常工作。为此,您需要在单独的计算机和/或移动设备上安装 Seafile 客户端程序。访问 Seafile 网站上的下载页面,并按照说明在计算机上安装最新版本的程序。Seafile 客户端可用于 Linux(乌本图、德比安、费多拉、森托斯/RHEL、拱形 Linux)、MacOS 和 Windows 的各种分销。移动客户端可用于安卓和iPhone/iPad设备从各自的应用程序商店。安装Seafile客户端后,您可以测试文件同步和共享功能。在计算机或设备上打开海文件客户端程序。接受海文件夹的默认位置,然后单击"下一步"。在下一个窗口中,输入服务器地址、用户名和密码,然后单击登录。在主页上,右键单击"我的图书馆"并单击"同步"此库。接受计算机或设备上位置的默认值。将文件(例如文档或照片)添加到"我的库"文件夹中。一段时间后,该文件将上传到服务器。以下屏幕截图显示的文件照片.jpg复制到我的图书馆文件夹。现在,登录到服务器上的 Web 界面并验证您的文件是否存在于服务器上单击文件旁边的共享,为您可以共享的此文件生成下载链接。您已验证文件同步工作正常,并且可以使用 Seafile 从多个设备同步和共享文件和文件夹。结论在此教程中,您设置了海文件服务器的私有实例。现在,您可以开始使用服务器同步文件、添加用户和组,并在它们之间或与公众共享文件,而无需依赖外部服务。当服务器有新版本时,请咨询手册的升级部分以了解执行升级的步骤。
  • [技术干货] OBS、EVS和SFS有什么区别
    对比维度对象存储服务云硬盘弹性文件服务概念提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,可满足不同场景的业务需求。云硬盘就类似PC中的硬盘。提供按需扩展的高性能文件存储,可为云上多个云服务器提供共享访问。弹性文件服务就类似Windows或Linux中的远程目录。存储数据的逻辑存放的是对象,可以直接存放文件,文件会自动产生对应的系统元数据,用户也可以自定义文件的元数据。存放的是二进制数据,无法直接存放文件,如果需要存放文件,需要先格式化文件系统后使用。存放的是文件,会以文件和文件夹的层次结构来整理和呈现数据。访问方式可以通过互联网或专线访问。需要指定桶地址进行访问,使用的是HTTP和HTTPS等传输协议。只能在ECS/BMS中挂载使用,不能**作系统应用直接访问,需要格式化成文件系统进行访问。在云服务器中挂载使用。需要指定网络地址进行访问,也可以将网络地址变为本地目录后进行访问,使用的是NFS和CIFS的网络文件系统协议。使用场景如大数据分析、静态网站托管、在线视频点播、基因测序和智能视频监控等。如高性能计算、企业核心集群应用、企业应用系统和开发测试等。说明:高性能计算:主要是高速率、高IOPS的需求,用于作为高性能存储,比如工业设计、能源勘探这些。如高性能计算、媒体处理、文件共享和内容管理和Web服务等。说明:高性能计算:主要是高带宽的需求,用于共享文件存储,比如基因测序、图片渲染这些。容量EB级别TB级别PB级别时延10ms1~2ms3~10msIOPS/TPS千万级单盘 33K单文件系统 10K带宽TB/s级别MB/s级别GB/s级别是否支持数据共享是是是是否支持远程访问是否是是否支持在线编辑否是是是否能单独使用是否是
  • [基础知识] Linux开发那点事——常用命令
    Linux开发中,命令行操作可是必不可少的技能,简单便捷的操作,比图形界面操作要优雅许多,也是事半功倍,感觉用到什么去学就行了,不用刻意去学习,那现在来看看有哪些常用命令吧。一.文件和目录cd命令,用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。cd /home    进入 '/ home' 目录cd ..            返回上一级目录 cd ../..         返回上两级目录 cd               进入个人的主目录 cd ~user1   进入个人的主目录 cd -             返回上次所在的目录pwd命令,显示工作路径[root@mailvip ~]# pwd/rootls命令,查看文件与目录的命令,list之意ls 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 列出全部文件,包含隐藏文件ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来  ls [0-9] 显示包含数字的文件名和目录名cp命令,用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下-a :将文件的特性一起复制-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份-i :若目标文件已经存在时,在覆盖时会先询问操作的进行-r :递归持续复制,用于目录的复制行为 //经常使用递归复制-u :目标文件与源文件有差异时才会复制mv命令,用于移动文件、目录或更名,move之意-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i :若目标文件已经存在,就会询问是否覆盖-u :若目标文件已经存在,且比目标文件新,才会更新rm命令,用于删除文件或目录,remove之意-f :就是force的意思,忽略不存在的文件,不会出现警告消息-i :互动模式,在删除前会询问用户是否操作-r :递归删除,最常用于目录删除,它是一个非常危险的参数二、查看文件内容cat命令,用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用cat file1 从第一个字节开始正向查看文件的内容 tac file1 从最后一行开始反向查看一个文件的内容 cat -n file1 标示文件的行数 more file1 查看一个长文件的内容 head -n 2 file1 查看一个文件的前两行 tail -n 2 file1 查看一个文件的最后两行 tail -n +1000 file1  从1000行开始显示,显示1000行以后的cat filename | head -n 3000 | tail -n +1000  显示1000行到3000行cat filename | tail -n +3000 | head -n 1000  从第3000行开始,显示1000(即显示3000~3999行)三.文件搜索find命令,用来查找系统的find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 find / -user user1 搜索属于用户 'user1' 的文件和目录 find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径删除大于50M的文件:find /var/mail/ -size +50M -exec rm {} \;四.文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消chmod命令,改变文件/文件夹权限ls -lh 显示权限 chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r,4 )、写(w,2)和执行(x,1)的权限 chmod go-rwx directory1  删除群组(g)与其他人(o)对目录的读写执行权限chown命令,改变文件的所有者chown user1 file1 改变一个文件的所有人属性 chown -R user1 directory1 改变一个目录的所有人属性并同时改变改该目录下所有文件的属性 chown user1:group1 file1 改变一个文件的所有人和群组属性11.chgrp命令,改变文件所属用户组chgrp group1 file1 改变文件的群组五.文本处理grep命令,分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等grep Aug /var/log/messages  在文件 '/var/log/messages'中查找关键词"Aug" grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 grep [0-9]  /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行 grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug" sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2" sed '/^$/d' example.txt 从example.txt文件中删除所有空白行paste命令paste file1 file2 合并两个文件或两栏的内容 paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分sort命令sort file1 file2 排序两个文件的内容 sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) sort file1 file2 | uniq -u 删除交集,留下其他的行 sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)comm命令comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容 comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分六、打包和压缩文件tar命令,对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压-c :新建打包文件-t :查看打包文件的内容含有哪些文件名-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中-j :通过bzip2的支持进行压缩/解压缩-z :通过gzip的支持进行压缩/解压缩-v :在压缩/解压缩过程中,将正在处理的文件名显示出来-f filename :filename为要处理的文件-C dir :指定压缩/解压缩的目录dir压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称 查询:tar -jtv -f filename.tar.bz2 解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做 'file1' 的文件 gunzip file1.gz 解压一个叫做 'file1.gz'的文件 gzip file1 压缩一个叫做 'file1'的文件 gzip -9 file1 最大程度压缩 rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' rar x file1.rar 解压rar包zip file1.zip file1 创建一个zip格式的压缩包 unzip file1.zip 解压一个zip格式压缩包 zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包七.系统和关机(关机、重启和登出)shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1) reboot 重启(2) logout 注销 time 测算一个命令(即程序)的执行时间 八、进程相关的命令jps命令,显示当前系统的java进程情况,及其id号jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。ps命令,用于将某个时间点的进程运行情况选取下来并输出,process之意-A :所有的进程均显示出来-a :不与terminal有关的所有进程-u :有效用户的相关进程-x :一般与a参数一起使用,可列出较完整的信息-l :较长,较详细地将PID的信息列出ps aux # 查看系统所有的进程数据ps ax # 查看不与terminal有关的所有进程ps -lA # 查看系统所有的进程数据ps axjf # 查看连同一部分进程树状态kill命令,用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用命令格式 : kill[命令参数][进程id]命令参数:-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称-a  当处理当前进程时,不限制命令名和进程号的对应关系-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号-s  指定发送信号-u  指定用户实例1:列出所有信号名称 命令:kill -l 输出:[root@localhost test6]# kill -l 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR213) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+439) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+843) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-1451) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-1055) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-659) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-263) SIGRTMAX-1  64) SIGRTMAX说明:只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。   下面是常用的信号:HUP    1    终端断线INT     2    中断(同 Ctrl + C)QUIT    3    退出(同 Ctrl + \)TERM   15    终止KILL    9    强制终止CONT   18    继续(与STOP相反, fg/bg命令)STOP    19    暂停(同 Ctrl + Z)实例2:得到指定信号的数值[root@localhost test6]# kill -l KILL[root@localhost test6]# kill -l SIGKILL[root@localhost test6]# kill -l TERM[root@localhost test6]# kill -l SIGTERM[root@localhost test6]#实例3:先用ps查找进程,然后用kill杀掉命令:kill 3268[root@localhost test6]# ps -ef|grep vim root      3268  2884  0 16:21 pts/1    00:00:00 vim install.logroot      3370  2822  0 16:21 pts/0    00:00:00 grep vim[root@localhost test6]# kill 3268 实例4:彻底杀死进程命令:kill –9 3268   // -9 强制杀掉进程killall命令,向一个命令启动的进程发送一个信号,用于杀死指定名字的进程命令格式 : killall[命令参数][进程名]命令参数:-Z 只杀死拥有scontext 的进程-e 要求匹配进程名称-I 忽略小写-g 杀死进程组而不是进程-i 交互模式,杀死进程前先询问用户-l 列出所有的已知信号名称-q 不输出警告信息-s 发送指定的信号-v 报告信号是否成功发送-w 等待进程死亡--help 显示帮助信息--version 显示版本显示示例1:杀死所有同名进程    killall nginx    killall -9 bash2.向进程发送指定信号    killall -TERM ngixn  或者  killall -KILL nginxtop命令,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。如何杀死进程:(1)图形化界面的方式(2)kill -9 pid  (-9表示强制关闭)(3)killall -9 程序的名字(4)pkill 程序的名字查看进程端口号:netstat -tunlp|grep 端口号原文来自:http://r6d.cn/wnzC邮箱:tjulitianyi@163.com
  • [技术干货] 视频入门:视频解码模式、编码格式、视频帧、GOP
    硬解和软解视频解码分为硬解和软解,所谓“软解”就是通过软件让 CPU 进行视频解码处理;而“硬解”是指不依赖于 CPU,通过专用的设备(子卡)单独完成视频解码,比如曾经的 VCD/DVD 解压卡、视频压缩卡都被冠以“硬解”的称号。现在实现高清硬解不需要额外的子卡,也不需要额外的投入,因为硬解码模块被整合在了 GPU 内部,而目前主流的显卡(包括整合显卡)都能支持硬解码。“硬解”其实更需要软件的支持,只是基本不需要 CPU 参与运算,从而为系统节约了很多资源开销。RGB 和 YUVRGB 指的是红绿蓝,应用还是很广泛的,比如显示器显示, bmp 文件格式中的像素值等;而 yuv 主要指亮度和两个色差信号,被称为 luminance 和 chrominance 他们的转化关系可以自己去查一下,我们视频里面基本上都是用yuv格式。YUV文件格式又分很多种,如果算上存储格式,就更多了,比如 yuv444、 yuv422、 yuv411、 yuv420 等等,视频压缩用到的是 420 格式,这是 因为人眼对亮度更敏感些,对色度相对要差些。编码格式编码的目的是压缩数据量,采用编码算法压缩冗余数据。常用的编码格式有:MPEG(MPEG-2 MPEG-4)H.26X(H.263 H.264/AVC H.265/HEVC)码率也就是比特率,比特率是单位时间播放连续的媒体(如压缩的音频和视频)的比特数量。比特率越高,带宽消耗得越多。视频帧常见的视频帧有I、P、B帧。I帧关键帧,采用帧内压缩技术P帧向前参考帧,表示这一帧与上一帧的差别,属于帧间压缩技术B帧表示双向参考帧,压缩时既参考前一帧也参考后一帧,帧间压缩技术一个 I 帧可以不依赖其他帧就解码出一幅完整的图像,而 P 帧、B 帧不行。P 帧需要依赖视频流中排在它前面的帧才能解码出图像。B 帧则需要依赖视频流中排在它前面或后面的帧才能解码出图像。GOPGOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧。所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。DTS和PTSDTS: Decode      Time Stamp,主要用于标示读入内存的比特流在什么时候开始送入解码器中进行解码。PTS:      Presentation Time Stamp,主要用于度量解码后的视频帧什么时候被显示出来。由于B帧需要前后的帧才能解出图像,所以可能一个视频中帧的显示顺序是I B B P,但我们在解码B帧时需要P帧的信息,所以在传输的视频流中的顺序是I P B B。这时候就体现出每帧都有 DTS 和 PTS 的作用了。DTS 告诉我们该按什么顺序解码这几帧图像,PTS 告诉我们该按什么顺序显示这几帧图像。例如:Stream: I P B BPTS: 1 4 2 3DTS: 1 2 3 4
  • [技术干货] 【交换机特性】EasyDeploy-通过Option参数实现零配置设备部署示例
    具体以交换机产品文档为准。在小区接入组网环境下的部署场景中,汇聚设备SwitchD连接着整个小区各个楼层的新出厂设备(如SwitchA、SwitchB和SwitchC)。用户希望为小区内的各楼层的新设备加载相同的系统软件、补丁文件和配置文件;并且由于待配置的新设备较多,为了降低人工成本、节省部署的时间,用户希望各楼层设备能实现统一自动的配置。实现零配置设备部署前,需要确保文件服务器、DHCP服务器与待配置设备(获取IP地址后)之间路由可达。配置思路采用以下思路配置设备:用户PC与SwitchD直接相连,在PC上配置文件服务器。将需要加载的配置文件、系统软件和补丁文件放至文件服务器的工作目录下,保证SwitchA、SwitchB和SwitchC能够获取到需要加载的文件。在SwitchD上配置DHCP服务器,为SwitchA、SwitchB和SwitchC提供网络配置信息。由于待配置设备需加载相同的系统软件、补丁文件和配置文件,所以在配置DHCP服务器时,通过Option67和Option145提供需加载文件的信息。SwitchA、SwitchB和SwitchC上电,实现通过EasyDeploy功能自动加载配置文件、系统软件和补丁文件。操作步骤配置文件服务器请根据文件服务器的操作指导进行配置。配置完成后,将待配置设备需要加载的文件保存至文件服务器中。配置DHCP服务器<HUAWEI> system-view[HUAWEI] sysname DHCP_Server[DHCP_Server] dhcp enable[DHCP_Server] vlan batch 10 20[DHCP_Server] interface gigabitethernet 0/0/1[DHCP_Server-GigabitEthernet0/0/1] port link-type hybrid[DHCP_Server-GigabitEthernet0/0/1] port hybrid pvid vlan 10[DHCP_Server-GigabitEthernet0/0/1] port hybrid untagged vlan 10[DHCP_Server-GigabitEthernet0/0/1] quit[DHCP_Server] interface gigabitethernet 0/0/2[DHCP_Server-GigabitEthernet0/0/2] port link-type hybrid[DHCP_Server-GigabitEthernet0/0/2] port hybrid pvid vlan 10[DHCP_Server-GigabitEthernet0/0/2] port hybrid untagged vlan 10[DHCP_Server-GigabitEthernet0/0/2] quit[DHCP_Server] interface gigabitethernet 0/0/3[DHCP_Server-GigabitEthernet0/0/3] port link-type hybrid[DHCP_Server-GigabitEthernet0/0/3] port hybrid pvid vlan 10[DHCP_Server-GigabitEthernet0/0/3] port hybrid untagged vlan 10[DHCP_Server-GigabitEthernet0/0/3] quit[DHCP_Server] interface gigabitethernet 0/0/4[DHCP_Server-GigabitEthernet0/0/4] port link-type hybrid[DHCP_Server-GigabitEthernet0/0/4] port hybrid pvid vlan 20[DHCP_Server-GigabitEthernet0/0/4] port hybrid untagged vlan 20[DHCP_Server-GigabitEthernet0/0/4] quit[DHCP_Server] interface vlanif 10[DHCP_Server-Vlanif10] ip address 192.168.2.6 255.255.255.0[DHCP_Server-Vlanif10] dhcp select global[DHCP_Server-Vlanif10] quit[DHCP_Server] interface vlanif 20[DHCP_Server-Vlanif20] ip address 192.168.1.1 255.255.255.0 [DHCP_Server-Vlanif20] quit[DHCP_Server] ip pool auto-config[DHCP_Server-ip-pool-auto-config] network 192.168.2.0 mask 255.255.255.0[DHCP_Server-ip-pool-auto-config] gateway-list 192.168.2.6[DHCP_Server-ip-pool-auto-config] option 67 ascii s_V200R019C00.cfg[DHCP_Server-ip-pool-auto-config] option 141 ascii user[DHCP_Server-ip-pool-auto-config] option 142 cipher huawei123[DHCP_Server-ip-pool-auto-config] option 143 ip-address 192.168.1.6[DHCP_Server-ip-pool-auto-config] option 145 ascii vrpfile=s_V200R019C00.cc;vrpver=V200R019C00SPC200;patchfile=s_V200R019C00.pat;[DHCP_Server-ip-pool-auto-config] quit待配置设备SwitchA、SwitchB和SwitchC上电启动,EasyDeploy流程开始运行验证配置结果# EasyDeploy流程结束后,登录到待配置设备执行命令display startup查看设备当前的启动系统软件,启动配置文件和启动补丁文件。以SwitchA为例:<HUAWEI> display startupMainBoard:   Configured startup system software:        flash:/s_V200R019C00.cc   Startup system software:                   flash:/s_V200R019C00.cc   Next startup system software:              flash:/s_V200R019C00.cc   Startup saved-configuration file:          flash:/s_V200R019C00.cfg   Next startup saved-configuration file:     flash:/s_V200R019C00.cfg   Startup paf file:                          NULL   Next startup paf file:                     NULL   Startup license file:                      NULL   Next startup license file:                 NULL   Startup patch package:                     flash:/s_V200R019C00.pat   Next startup patch package:                flash:/s_V200R019C00.pat配置文件DHCP_Server的配置文件# sysname DHCP_Server # vlan batch 10 20 # dhcp enable # ip pool auto-config  gateway-list 192.168.2.6  network 192.168.2.0 mask 255.255.255.0  option 67 ascii s_V200R019C00.cfg  option 141 ascii user  option 142 cipher %^%#%AC[/dp2*'%0FWN7]p{SWrB`$}i[:7VBPZQj5@)%%^%#  option 143 ip-address 192.168.1.6  option 145 ascii vrpfile=s_V200R019C00.cc;vrpver=V200R019C00SPC200;patchfile=s_V200R019C00.pat; # interface Vlanif10  ip address 192.168.2.6 255.255.255.0  dhcp select global # interface Vlanif20  ip address 192.168.1.1 255.255.255.0 # interface GigabitEthernet0/0/1  port link-type hybrid  port hybrid pvid vlan 10  port hybrid untagged vlan 10  # interface GigabitEthernet0/0/2  port link-type hybrid  port hybrid pvid vlan 10  port hybrid untagged vlan 10  # interface GigabitEthernet0/0/3  port link-type hybrid  port hybrid pvid vlan 10  port hybrid untagged vlan 10  # interface GigabitEthernet0/0/4  port link-type hybrid  port hybrid pvid vlan 20  port hybrid untagged vlan 20  # return
  • 竞享实例在生物医药场景应用
    场景介绍:使用竞享实例为基因组测序,DNA分析等高强度计算业务提供经济高效的计算资源,所需时间从数周缩短为几天典型客户群体:高校实验室,研究所,基因检测机构,生物技术公司场景特点:资源多样:组装环节要求大内存胖节点高容错:管理调度平台获取任务状态并智能重发失败任务集中部署:计算集群需部署在同一Region规格要求:无超分,大规格(常见16U-64U)应用架构图:  使用优势:成本降低:最高可帮助用户节省成本灵活便捷:用户可设置实例持续时间,到期释放规模运行:用户可申请超大规模集群处理转码任务性能保障:与按需ECS相同底层资源,性能一致搭配服务(除EVS):专线连接(DC):用于客户将生物数据传输至云上存储弹性文件服务(SFS):基因测序部分环节以SFS作为共享存储介质进行分析 
  • [问题求助] 使用obsfs并行文件系统挂载不能配置跨域,挂载正常,但是http请求时跨域了无法访问,请问应如何解决?
    使用obsfs并行文件系统挂载,不能配置跨域;挂载正常,但是http请求时跨域了,无法正常使用,请问有什么方法可以解决吗?谢谢,错误信息如下:
  • [技术干货] linux云服务访问本地文件服务器
    视频业务,服务上云。linux的华为云系统,需要连接本地windows文件数据服务器,作为用户视频文件的存储。请问:华为云系统怎么才能连接到本地数据服务器?
  • [已解决问题归档] 客服系统页面显示的录音是通过http请求文件服务器获取,需要开那些策略
    版本 信息espace cc  c60  gsl问题描述客服系统页面显示的录音是通过http请求文件服务器获取的,需要开那些策略?处理完成时间紧急
  • [公告] 华为云弹性文件服务SFS Turbo带宽型于2019年5月31日00:00(北京时间)转商通知
    尊敬的华为云客户:华为云计划于2019/05/31 00:00 将弹性文件服务(Scalable File Service,SFS)的SFS Turbo带宽型正式转商。在SFS Turbo带宽型公测期间开通的用户,华为云将会在2019/05/31开始收费,收费标准与现有通用型保持一致,如果不再使用请提前在控制台删除实例,避免造成额外的费用。更多关于SFS-Turbo的产品介绍,请您点击了解。如您有任何问题,可随时通过工单或者服务热线(950808)与我们联系。感谢您对华为云的支持!
  • [技术干货] 华为云OBS服务 Posix语义特性 obsfs客户端 下载地址
    obsfs是华为云OBS的文件语义客户端,Centos 、Eulor等系统可以使用(Ubuntu版本在后面)obsfs_20190322205000_eulor.zip建议使用libfuse.so.2.9.7  libfuse.so.2.9.7.zip备份原/lib64目录下的libfuse.so版本,将libfuse.so.2.9.7  放至 /lib64下,并执行以下命令创建软链接cd /lib64ln -s libfuse.so.2.9.7 libfuse.so.2ln -s libfuse.so.2.9.7 libfuse.so检查是否创建成功:obsfs使用指南见附件华为云对象存储服务obsfs客户端用户指南.zipubuntu 客户端obsfs_20190323141900_ubuntu.zip
总条数:60 到第
上滑加载中