• 关于

    t more主机

    的搜索结果

问题

云主机安装ghost博客程序

Hello There! Looks like something went wrong with your JavaScript. Either you need to enable JavaScript, or you haven...
isnow 2019-12-01 21:35:49 7364 浏览量 回答数 1

问题

为什么同一节点下windows的mysql比linux连接服务要快

问题描述: Windows2003下的MySQL服务器,本机连接到MySQL服务非常快,同一节点的Linuxecs,输入密码后要等好几秒钟才能连上。 客户端10.47.91.16...
zhangmeng 2019-12-01 21:00:53 8199 浏览量 回答数 0

问题

十大利用云计算的精彩应用

十大利用云计算的精彩应用 The "cloud" is where we've been sharing our lives and storing our files for awhile now, b...
佳剑 2019-12-01 21:04:56 6092 浏览量 回答数 2

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

问题

使用 dd 命令实现 SAN 存储的快照数据迁移:报错

简介: 在实验室环境,如何对现有数据做一个快照备份,如何快速将数据迁移到新的存储系统? dd 命令可以实现数据的快照备份和数据迁移。在本文中,我们将分析 dd 命令的用法...
kun坤 2020-06-06 12:01:16 1 浏览量 回答数 1

回答

ReWindows Server 2012 R2服务器,装了护卫神主机大师,Apache配置https后启动不 请教楼主,httpd-ssl.conf这样配置有什么问题吗 加密的lite.winiss.com/ 还是无法访问 # WARNING! On some platforms /dev/random blocks if not enough entropy # is available. This means you then cannot use the /dev/random device # because it would lead to very long connection times (as long as # it requires to make more entropy available). But usually those # platforms additionally provide a /dev/urandom device which doesn't # block. So, if available, use this one instead. Read the mod_ssl User # Manual for more details. # #SSLRandomSeed startup file:/dev/random  512 #SSLRandomSeed startup file:/dev/urandom 512 #SSLRandomSeed connect file:/dev/random  512 #SSLRandomSeed connect file:/dev/urandom 512 # # When we also provide SSL we have to listen to the # standard HTTP port (see above) and to the HTTPS port # # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two #       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443" # Listen 443 ## ##  SSL Global Context ## ##  All SSL configuration in this context applies both to ##  the main server and all SSL-enabled virtual hosts. ## # #   Some MIME-types for downloading Certificates and CRLs # AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl    .crl #   Pass Phrase Dialog: #   Configure the pass phrase gathering process. #   The filtering dialog program (`builtin' is a internal #   terminal dialog) has to provide the pass phrase on stdout. SSLPassPhraseDialog  builtin #   Inter-Process Session Cache: #   Configure the SSL Session Cache: First the mechanism #   to use and second the expiring timeout (in seconds). #SSLSessionCache         "dbm:E:/Huweishen.com/HwsApacheMaster/Apache2.2/logs/ssl_scache" #SSLSessionCache        "shmcb:E:/Huweishen.com/HwsApacheMaster/Apache2.2/logs/ssl_scache(512000)" SSLSessionCache         "shmcb:logs/ssl_scache(512000)" SSLSessionCacheTimeout  300 #   Semaphore: #   Configure the path to the mutual exclusion semaphore the #   SSL engine uses internally for inter-process synchronization. SSLMutex default <VirtualHost *:443>         SSLEngine on         SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP         SSLCertificateFile      "E:\HwsApacheMaster\Apache\conf\ssl\lite_winiss_com.crt"         SSLCertificateKeyFile   "E:\HwsApacheMaster\Apache\conf\ssl\lite_winiss_com.key"         ServerName      "lite.winiss.com"         DocumentRoot    "E:\HwsApacheMaster\wwwroot\lite_XynWMB" </VirtualHost>
zcsbc 2019-12-01 23:30:39 0 浏览量 回答数 0

问题

PCI远程扫描漏洞补丁如何解决

您好:求助一下,一下问题如何解决 2018-08-07   Scan ID 8238876 Max CVSS 10.0 Scan State Completed Scan Compliance Status F...
1298117508539047 2019-12-01 18:51:40 2296 浏览量 回答数 0

问题

#技塑人生# 专题:软件分享 - Linux SSH登录建立双因子验证机制

专题:软件分享 - Linux SSH登录建立双因子验证机制(谷歌身份验证器 Google Authenticator) 阿里云技术服务团队:蒋金城 ssh public key登录还不够安全&...
qiujin2012 2019-12-01 22:03:47 9568 浏览量 回答数 2

回答

1 syslogd的配置文件 syslogd的配置文件/etc/syslog.conf规定了系统中需要监视的事件和相应的日志的保存位置 cat /etc/syslog.conf # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! .info;mail.none;authpriv.none;cron.none /var/log/messages #除了mail/news/authpriv/cron以外,将info或更高级别的消息送到/var/log/messages,其中是通配符,代表任何设备;none表示不对任何级别的信息进行记录 # The authpriv file has restricted access. authpriv.* /var/log/secure #将authpirv设备的任何级别的信息记录到/var/log/secure文件中,这主要是一些和认证,权限使用相关的信息. # Log all the mail messages in one place. mail.* -/var/log/maillog #将mail设备中的任何级别的信息记录到/var/log/maillog文件中, 这主要是和电子邮件相关的信息. # Log cron stuff cron.* /var/log/cron #将cron设备中的任何级别的信息记录到/var/log/cron文件中, 这主要是和系统中定期执行的任务相关的信息. # Everybody gets emergency messages .emerg * #将任何设备的emerg级别或更高级别的消息发送给所有正在系统上的用户. # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler #将uucp和news设备的crit级别或更高级别的消息记录到/var/log/spooler文件中. # Save boot messages also to boot.log local7. /var/log/boot.log #将和本地系统启动相关的信息记录到/var/log/boot.log文件中. 2. syslogd语法 该配置文件的每一行的格式如下: facility.priority action 设备.级别 动作 3. Syslogd设备字段 设备字段用来指定需要监视的事件.它可取的值如下: authpriv cron daemon kern lpr syslog user uucp mail news 报告认证活动通常,口令等私有信息不会被记录 报告与cron和at有关的信息 报告与xinetd有关的信息 报告与内核有关的信息 报告与打印服务有关的信息 由syslog生成的信息 报告由用户程序生成的任何信息由UUCP生成的信息 报告与邮件服务有关的信息 报告与网络新闻服务有关的信息 4. syslogd级别字段 级别字段用于指明与每一种功能有关的级别和优先级: alert crit err warning notice info debug none * emerg 需要立即引起注意的情况 危险情况的警告 除了emerg,alert,crit的其他错误 警告信息需要引起注意的情况 值得报告的消息 由运行于debug模式的程序所产生的消息 用于禁止任何消息 所有级别,除了none 出现紧急情况使得该系统不可用 5. syslogd动作字段 动作字段用于描述对应功能的动作 file username device @hostname 指定一个绝对路径的日志文件名记录日志信息 发送信息到指定用户,*表示所有用户 将信息发送到指定的设备中,如/dev/console将信息发送到可解析的远程主机hostname,且该主机必须正在运行syslogd并可以识别syslog的配置文件 6. 查看日志文件 常见的日志文件日志文件通常存放在/var/log目录下.在该目录下除了包括syslogd 记录的日志之外,同时还包含所有应用程序的日志. 为了查看日志文件的内容必须要有root权限.日志文件中的信息很重要,只能让超级用户有访问这些文件的权限. 7. log cups/ httpd/ mail/ news/ boot.log dmesg maillog messages secure wtmp 存储CUPS打印系统的日志目录 记录apache的访问日志和错误日志目录 存储mail日志目录 存储INN新闻系统的日志目录 记录系统启动日志记录系统启动时的消息日志 记录邮件系统的日志 由syslogd记录的info或更高级别的消息日志 由syslogd记录的认证日志 一个用户每次登录进入和退出时间的永久记录 8. 查看文本日志文件 绝大多数日志文件是纯文本文件,每一行就是一个消息.只要是在Linux下能够处理纯文本的工具都能用来查看日志文件.可以使用 cat,tac, more,less,tail和grep进行查看文件中每一行表示一个消息,而且都由四个域的固定格式组成: 时间标签(Timestamp):表示消息发出的日期和时间. 主机名(Hostname):表示生成消息的计算机的名字. 生成消息的子系统的名字:可以是"Kernel",表示消息来自内核或者 是进程的名字,表示发出消息的程序的名字. 在方括号里的是进程的PID. 消息(Message),即消息的内容. syslog发出的消息,说明了守护进程已经在 Dec 16,03:32:41 重新启动了. Dec 16 03:32:41 cnetos5 syslogd 1.4.1: restart. # 在 Dec 19,00:20:56 启动了内核日志 klogd Dec 19 00:20:56 cnetos5 kernel: klogd 1.4.1, log source = /proc/kmsg started. # 在 Dec 19,00:21:01 启动了xinetd Dec 19 00:21:01 cnetos5 xinetd[2418]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in. 9. 查看非文本日志文件Lastlog 也有一些日志文件是二进制文件,需要使用相应的命令进行读取. 使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog 的内容 rpc 从未登录过 rpcuser 从未登录过 sshd 从未登录过 pcap 从未登录过 haldaemon 从未登录过 xfs 从未登录过 gdm 从未登录过 boobooke 从未登录过 baobao pts/1 192.168.1.2 三 11月 26 12:44:32 +0800 2008 abc 从未登录过 test pts/1 192.168.1.5 四 11月 27 17:30:53 +0800 2008 test01 从未登录过 last命令往回搜索/var/log/wtmp来显示自从文件第一次创建以来登录过用户 root pts/1 116.226.69.195 Fri Aug 31 15:48 - 18:37 (02:49) 10. 查看非文本日志文件lastb lastb命令搜索/var/log/btmp来显示登录未成功的信息. root ssh:notty 222.143.27.97 Thu Sep 6 19:43 - 19:43 (00:00) 11. 查看非文本日志文件who who命令查询wtmp文件并报告当前登录的每个用户.who命令的缺省输出包括用户名,终端类型,登录日期及远程主机. [root@server ~]# who root pts/0 2012-09-08 10:18 (116.226.69.195) [root@server ~]# w 10:41:31 up 212 days, 20:19, 1 user, load average: 0.21, 0.16, 0.14 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 116.226.69.195 10:18 0.00s 0.09s 0.00s w 12.日志滚动 为什么使用日志滚动所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成磁盘空间的不必要的浪费.同时也 加快了管理员查看日志所用的时间,因为打开小文件的速度比打开大文件的速度要快. Logrotate 其命令格式为: logrotate [选项] <configfile> -d:详细显示指令执行过程,便于排错或了解程序执行的情况. -f:强行启动记录文件维护操作,即使logrotate指令认为无需要亦然 -m command:指定发送邮件的程序,默认为 /usr/bin/mail. -s statefile:使用指定的状态文件. -v:在执行日志滚动时显示详细信息. 13. 日志滚动 logrotate 默认的主配置文件是 /etc/logrotate.conf /etc/logrotate.d 的目录下的文件,这些文件被 include 到主配置文件 /etc/logrotate.conf 中 # see "man logrotate" for details # 每周清理一次日志文件 weekly #保存过去四周的日志文件 rotate 4 #清除旧日志文件的同时,创建新的空日志文件 create #若使用压缩的日志文件,请删除下面行的注释符 #compress #包含/etc/logrotate.d目录下的所有配置文件 include /etc/logrotate.d #设置/var/log/wtmp的日志滚动 /var/log/wtmp { monthly minsize 1M create 0664 root utmp rotate 1 } 可以使用ls命令显示/etc/logrotate.d目录: [root@server ~]# ls /etc/logrotate.d mgetty psacct rpm setroubleshoot snmpd syslog yum 每个文件的基本格式均相同 [root@server ~]# cat /etc/logrotate.d/syslog /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { #对日志文件 sharedscripts #调用日志滚动通用函数sharedscripts postrotate #在日志滚动之后执行语句括号postrotate和endscript之间的命令postrotate /bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null 2> /dev/null || true /bin/kill -HUP cat /var/run/rsyslogd.pid 2> /dev/null 2> /dev/null || true #重新启动syslogd endscript } logrotate是由crond运行的,在默认配置中,可以发现在/etc/cron.daily目录中有一个名为logrotate的文件 [root@server ~]# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 答案来源于网络
养狐狸的猫 2019-12-02 03:06:55 0 浏览量 回答数 0

问题

FreeBSD系统盘扩容、分区、挂载

目前暂时不支持购买完成以后自动扩容FreeBSD系统盘空间,需要在系统内部手动扩容。 [backcolor=transparent]注意:扩容文件系统有风险,操作需谨慎,请在操...
boxti 2019-12-01 21:41:05 3517 浏览量 回答数 1

问题

Linux系统常用命令大全

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -...
北京小顽童 2019-12-01 21:15:48 36201 浏览量 回答数 16

回答

参考如下几个方案: 1:在去往下载页面的 action 之中,创建一个类似于 token 的东东存放在服务端一份,然后在这个下载链接上用问号挂参的方式带上来个 token,下载请求到来时,删掉服务端这份token,并开始下载过程,后来到来的请求再次使用这个 token时,服务端不进行 renderFile即可。注意处理好多线程同步问题 2:为链接添加单击事件,点击以后变为不可用,或者点击以后让 href属性变为无效,例如: <a href="/file.zip" id="downLoad" /> // 添加一段脚本 $("#downLoad").click(function() { $(this).attr("href", "javascript:void(0)"); }); ######前端动态创建连接,而且只触发了一次下载, 后端action中查询数据,生成部门分组,导出多个excel,构造zip并下载。 现在情况是触发一次下载,浏览器点保存后,反复进入action中下载###### 引用来自“JFinal”的评论 参考如下几个方案: 1:在去往下载页面的 action 之中,创建一个类似于 token 的东东存放在服务端一份,然后在这个下载链接上用问号挂参的方式带上来个 token,下载请求到来时,删掉服务端这份token,并开始下载过程,后来到来的请求再次使用这个 token时,服务端不进行 renderFile即可 2:为链接添加单击事件,点击以后变为不可用,或者点击以后让 href属性变为无效,例如: <a href="/file.zip" id="downLoad" /> // 添加一段脚本 $("#downLoad").click(function() { this.attr("href", "javascript:void(0)"); }); 即使加了token,反复被提交的action里参数出现的tonken也是一样的~ 前端动态创建连接,而且只触发了一次下载,      function downloadFileURL(url,fileName){ var aLink = document.createElement('a'); var evt = document.createEvent("HTMLEvents"); evt.initEvent("click", false, false); aLink.download = fileName; aLink.href = url; aLink.dispatchEvent(evt); } 后端action中查询数据,生成部门分组,导出多个excel,构造zip并下载。 现在情况是触发一次下载,浏览器点保存后,反复进入action中下载 @ActionKey("/btwl/export_xd") public void f_export_xd(){     ...     renderFile(lf_zip); } ######谢谢波总 @JFinal ,这个问题解决了,还想问下,有什么事件能在客户下载完毕后触发呢?######回复 @JFinal : 好的,谢谢波总!######用 ajax请求,传入一个回调方法: success:function(){}或者 complete:function(){}###### 还有就是下载的时候,后台一直抛异常,前台下载没问题~~麻烦看一下 2016-05-12 17:15:05,235 [qtp602497195-139] ERROR [com.jfinal.core.ActionHandler] - /btwl/export_test?tab=t_art_wlqyxx&tabcn=xzcv&topjump=2&template=xd20160509.xls&sessionid=123123123&token=1463029033914 com.jfinal.render.RenderException: org.eclipse.jetty.io.EofException at com.jfinal.render.FileRender.rangeRender(FileRender.java:150) at com.jfinal.render.FileRender.render(FileRender.java:74) at com.jfinal.core.ActionHandler.handle(ActionHandler.java:93) at com.jfinal.ext.handler.ContextPathHandler.handle(ContextPathHandler.java:47) at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:365) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:745) Caused by: org.eclipse.jetty.io.EofException at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:914) at org.eclipse.jetty.http.AbstractGenerator.blockForOutput(AbstractGenerator.java:523) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:147) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:107) at com.jfinal.render.FileRender.rangeRender(FileRender.java:137) ... 40 more Caused by: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。 at sun.nio.ch.SocketDispatcher.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:51) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487) at org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:293) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:362) at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:850) ... 44 more
kun坤 2020-05-29 20:56:37 0 浏览量 回答数 0

回答

系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备 date 显示系统日期 cal 2007 显示2007年的日历表 date 041217002007.00 设置日期和时间 - 月日时分年.秒 clock -w 将时间修改保存到 BIOS 关机 (系统的关机、重启以及登出 ) shutdown -h now 关闭系统 init 0 关闭系统 telinit 0 关闭系统 shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启 reboot 重启 logout 注销 文件和目录 cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 cd - 返回上次所在的目录 pwd 显示工作路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls [0-9] 显示包含数字的文件名和目录名 tree 显示文件和目录由根目录开始的树形结构 lstree 显示文件和目录由根目录开始的树形结构 mkdir dir1 创建一个叫做 'dir1' 的目录' mkdir dir1 dir2 同时创建两个目录 mkdir -p /tmp/dir1/dir2 创建一个目录树 rm -f file1 删除一个叫做 'file1' 的文件' rmdir dir1 删除一个叫做 'dir1' 的目录' rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 rm -rf dir1 dir2 同时删除两个目录及它们的内容 mv dir1 new_dir 重命名/移动 一个目录 cp file1 file2 复制一个文件 cp dir/* . 复制一个目录下的所有文件到当前工作目录 cp -a /tmp/dir1 . 复制一个目录到当前工作目录 cp -a dir1 dir2 复制一个目录 ln -s file1 lnk1 创建一个指向文件或目录的软链接 ln file1 lnk1 创建一个指向文件或目录的物理链接 touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) file file1 outputs the mime type of the file as text iconv -l 列出已知的编码 iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" ; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick) 文件搜索 find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 find / -user user1 搜索属于用户 'user1' 的文件和目录 find /home/user1 -name *.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 find / -name *.rpm -exec chmod 755 '{}' ; 搜索以 '.rpm' 结尾的文件并定义其权限 find / -xdev -name *.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备 locate *.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径 挂载一个文件系统 mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出 fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件 mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统 mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享 磁盘空间 df -h 显示已经挂载的分区列表 ls -lSr |more 以尺寸大小排列文件和目录 du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间' du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小 rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统) dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统) 用户和群组 groupadd group_name 创建一个新用户组 groupdel group_name 删除一个用户组 groupmod -n new_group_name old_group_name 重命名一个用户组 useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户 useradd user1 创建一个新用户 userdel -r user1 删除一个用户 ( '-r' 排除主目录) usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性 passwd 修改口令 passwd user1 修改一个用户的口令 (只允许root执行) chage -E 2005-12-31 user1 设置用户口令的失效期限 pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户 grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组 newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组 文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消 ls -lh 显示权限 ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 chown user1 file1 改变一个文件的所有人属性 chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 chgrp group1 file1 改变文件的群组 chown user1:group1 file1 改变一个文件的所有人和群组属性 find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件 chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的 chmod g-s /home/public 禁用一个目录的 SGID 位 chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 chmod o-t /home/public 禁用一个目录的 STIKY 位 文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消 chattr +a file1 只允许以追加方式读写文件 chattr +c file1 允许这个文件能被内核自动压缩/解压 chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 chattr +s file1 允许一个文件被安全地删除 chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 lsattr 显示特殊的属性 打包和压缩文件 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' unrar x file1.rar 解压rar包 tar -cvf archive.tar file1 创建一个非压缩的 tarball tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 tar -tf archive.tar 显示一个包中的内容 tar -xvf archive.tar 释放一个包 tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包 tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包 zip file1.zip file1 创建一个zip格式的压缩包 zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 unzip file1.zip 解压一个zip格式压缩包 RPM 包 - (Fedora, Redhat及类似系统) rpm -ivh package.rpm 安装一个rpm包 rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告 rpm -U package.rpm 更新一个rpm包但不改变其配置文件 rpm -F package.rpm 更新一个确定已经安装的rpm包 rpm -e package_name.rpm 删除一个rpm包 rpm -qa 显示系统中所有已经安装的rpm包 rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包 rpm -qi package_name 获取一个已安装包的特殊信息 rpm -qg "System Environment/Daemons" 显示一个组件的rpm包 rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表 rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表 rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表 rpm -q package_name --whatprovides 显示一个rpm包所占的体积 rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l rpm -q package_name --changelog 显示一个rpm包的修改历史 rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供 rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表 rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书 rpm --checksig package.rpm 确认一个rpm包的完整性 rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性 rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间 rpm -Va 检查系统中所有已安装的rpm包- 小心使用 rpm -Vp package.rpm 确认一个rpm包还未安装 rpm2cpio package.rpm | cpio --extract --make-directories bin 从一个rpm包运行可执行文件 rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 从一个rpm源码安装一个构建好的包 rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包 YUM 软件包升级器 - (Fedora, RedHat及类似系统) yum install package_name 下载并安装一个rpm包 yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系 yum update package_name.rpm 更新当前系统中所有安装的rpm包 yum update package_name 更新一个rpm包 yum remove package_name 删除一个rpm包 yum list 列出当前系统中安装的所有包 yum search package_name 在rpm仓库中搜寻软件包 yum clean packages 清理rpm缓存删除下载的包 yum clean headers 删除所有头文件 yum clean all 删除所有缓存的包和头文件 DEB 包 (Debian, Ubuntu 以及类似系统) dpkg -i package.deb 安装/更新一个 deb 包 dpkg -r package_name 从系统删除一个 deb 包 dpkg -l 显示系统中所有已经安装的 deb 包 dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包 dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 dpkg -S /bin/ping 确认所给的文件由哪个deb包提供 APT 软件工具 (Debian, Ubuntu 以及类似系统) apt-get install package_name 安装/更新一个 deb 包 apt-cdrom install package_name 从光盘安装/更新一个 deb 包 apt-get update 升级列表中的软件包 apt-get upgrade 升级所有已安装的软件 apt-get remove package_name 从系统删除一个deb包 apt-get check 确认依赖的软件仓库正确 apt-get clean 从下载的软件包中清理缓存 apt-cache search searched-package 返回包含所要搜索字符串的软件包名称 查看文件内容 cat file1 从第一个字节开始正向查看文件的内容 tac file1 从最后一行开始反向查看一个文件的内容 more file1 查看一个长文件的内容 less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作 head -2 file1 查看一个文件的前两行 tail -2 file1 查看一个文件的最后两行 tail -f /var/log/messages 实时查看被添加到一个文件中的内容 文本处理 cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 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文件中删除所有空白行 sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行 echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容 sed -e '1d' result.txt 从文件example.txt 中排除第一行 sed -n '/stringa1/p' 查看只包含词汇 "string1"的行 sed -e 's/ $//' example.txt 删除每一行最后的空白字符 sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部 sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容 sed -n '5p;5q' example.txt 查看第5行 sed -e 's/00/0/g' example.txt 用单个零替换多个零 cat -n file1 标示文件的行数 cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行 echo a b c | awk '{print $1}' 查看一行第一栏 echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏 paste file1 file2 合并两个文件或两栏的内容 paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分 sort file1 file2 排序两个文件的内容 sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) sort file1 file2 | uniq -u 删除交集,留下其他的行 sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件) comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容 comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分 字符设置和文件格式转换 dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS recode ..HTML < page.txt > page.html 将一个文本文件转换成html recode -l | more 显示所有允许的转换格式 文件系统分析 badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块 fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性 fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性 fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 初始化一个文件系统 mkfs /dev/hda1 在hda1分区创建一个文件系统 mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统 mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统 mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统 fdformat -n /dev/fd0 格式化一个软盘 mkswap /dev/hda3 创建一个swap文件系统 SWAP文件系统 mkswap /dev/hda3 创建一个swap文件系统 swapon /dev/hda3 启用一个新的swap文件系统 swapon /dev/hda2 /dev/hdb3 启用两个swap分区 备份 dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份 dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份 restore -if /tmp/home0.bak 还原一个交互式备份 rsync -rogpav --delete /home /tmp 同步两边的目录 rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录 rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录 dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作 dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件 tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作 ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容 ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录 tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接 find /home/user1 -name '.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录 find /var/log -name '.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包 dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作 dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容 光盘 cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容 mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件 mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件 mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件 cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件 gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件 mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件 cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中 cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3) cdrecord --scanbus 扫描总线以识别scsi通道 dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD 网络 - (以太网和WIFI无线) ifconfig eth0 显示一个以太网卡的配置 ifup eth0 启用一个 'eth0' 网络设备 ifdown eth0 禁用一个 'eth0' 网络设备 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址 ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing) dhclient eth0 以dhcp模式启用 'eth0' route -n show routing table route add -net 0/0 gw IP_Gateway configura default gateway route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16' route del 0/0 gw IP_gateway remove static route echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing hostname show hostname of system host www.example.com lookup hostname to resolve name to ip address and viceversa nslookup www.example.com lookup hostname to resolve name to ip address and viceversa ip link show show link status of all interfaces mii-tool eth0 show link status of 'eth0' ethtool eth0 show statistics of network card 'eth0' netstat -tup show all active network connections and their PID netstat -tupl show all network services listening on the system and their PID tcpdump tcp port 80 show all HTTP traffic iwlist scan show wireless networks iwconfig eth1 show configuration of a wireless network card hostname show hostname host www.example.com lookup hostname to resolve name to ip address and viceversa nslookup www.example.com lookup hostname to resolve name to ip address and viceversa whois www.example.com lookup on Whois database JPS工具 jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。 我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。 使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。 jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path. $> jps 23991 Jps 23789 BossMain 23651 Resin 比较常用的参数: -q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数 $> jps -q 28680 23789 23651 -m 输出传递给main 方法的参数,在嵌入式jvm上可能是null $> jps -m 28715 Jps -m 23789 BossMain 23651 Resin -socketwait 32768 -stdout /data/aoxj/resin/log/stdout.log -stderr /data/aoxj/resin/log/stderr.log -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名 $> jps -l 28729 sun.tools.jps.Jps 23789 com.asiainfo.aimc.bossbi.BossMain 23651 com.caucho.server.resin.Resin -v 输出传递给JVM的参数 $> jps -v 23789 BossMain 28802 Jps -Denv.class.path=/data/aoxj/bossbi/twsecurity/java/trustwork140.jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmcc.jar:/data/aoxj/jdk15/lib/rt.jar:/data/aoxj/jd k15/lib/tools.jar -Dapplication.home=/data/aoxj/jdk15 -Xms8m 23651 Resin -Xss1m -Dresin.home=/data/aoxj/resin -Dserver.root=/data/aoxj/resin -Djava.util.logging.manager=com.caucho.log.LogManagerImpl - Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl
问问小秘 2020-07-23 13:20:37 0 浏览量 回答数 0

回答

调用CreateScalingConfiguration创建一个伸缩配置。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 CreateScalingConfiguration 系统规定参数。取值: CreateScalingConfiguration。 ScalingGroupId String 是 asg-bp14wlu85wrpchm0**** 伸缩配置所属的伸缩组的ID。 ImageId String 否 centos6u5_64_20G_aliaegis****.vhd 镜像文件ID,自动创建实例时使用的镜像资源。 ImageName String 否 myimage 镜像文件名称,同一个地域内镜像名称唯一。如果设置了ImageId, ImageName将被忽略。 不支持通过ImageName设置镜像市场镜像。 InstanceType String 否 ecs.t1.xsmall ECS实例的实例规格,更多信息请参见实例规格族。 Cpu Integer 否 2 vCPU个数。 同时指定CPU和Memory可以定义实例规格范围,例如,CPU=2且Memory=16可以定义配置为2 vCPU和16 GiB的所有实例规格。弹性伸缩会结合IO优化、可用区等因素确定可用实例规格集合,并根据价格排序为您创建价格最低的实例。 说明 该区间配置效果仅在成本优化模式下且伸缩配置未设置实例规格时生效。 Memory Integer 否 16 内存大小。 同时指定CPU和Memory可以定义实例规格范围,例如,CPU=2且Memory=16可以定义配置为2 vCPU和16 GiB的所有实例规格。弹性伸缩会结合IO优化、可用区等因素确定可用实例规格集合,并根据价格排序为您创建价格最低的实例。 说明 该区间配置效果仅在成本优化模式下且伸缩配置未设置实例规格时生效。 DeploymentSetId String 否 ds-bp1frxuzdg87zh4pz**** ECS实例所属的部署集的ID。 InstanceTypes.N RepeatList 否 ecs.t1.xsmall.1 多实例规格参数。如果使用了InstanceTypes.N,InstanceType将被忽略,其中N的取值范围:1~10,即一个伸缩配置内最多可以设置10种实例规格。 N代表当前伸缩配置中实例规格的优先级,编号为1的实例规格优先级最高,实例规格优先级随着编号的增大依次降低。当无法根据优先级较高的实例规格创建出实例时,弹性伸缩服务会自动选择下一优先级的实例规格来创建实例。 SecurityGroupId String 否 sg-280ih**** ECS实例所属的安全组的ID,同一个安全组内的ECS实例可以互相访问。 IoOptimized String 否 optimized 是否为I/O优化实例。已停售的实例规格实例默认值是none,其他实例规格默认值是optimized。取值范围: none:非I/O优化实例。 optimized:I/O优化实例。 InternetChargeType String 否 PayByTraffic 网络计费类型,取值范围: PayByBandwidth:按带宽计费。此时InternetMaxBandwidthOut即为所选的固定带宽值。 PayByTraffic:按流量计费。此时InternetMaxBandwidthOut只是一个带宽上限,计费以实际产生的网络流量为依据。 如果未指定该参数,经典网络下默认值为PayByBandwidth,专有网络VPC下默认值为PayByTraffic。 InternetMaxBandwidthIn Integer 否 100 公网入带宽最大值,单位为Mbps (Mega bit per second),取值范围:1~200。 如果您没有指定该参数,则入带宽将自动被设置为200Mbps。实例的入数据流量免费,该参数在任何情况下都不涉及计费。 InternetMaxBandwidthOut Integer 否 50 公网出带宽最大值,单位为Mbps (Mega bit per second),取值范围: 按带宽计费:0~100,如果您没有指定该参数,则出带宽将自动被设置为0Mbps。 按流量计费:0~100,如果您没有指定该参数,则会出现报错。 SystemDisk.Category String 否 cloud_ssd 系统盘的磁盘种类。取值范围: cloud:普通云盘 cloud_efficiency:高效云盘 cloud_ssd:SSD云盘 ephemeral_ssd:本地SSD盘 cloud_essd:ESSD云盘 InstanceType为系列I的实例规格且实例属于非I/O优化实例时,默认值:cloud。否则,默认值:cloud_efficiency。 SystemDisk.Size Integer 否 100 系统盘的大小,单位:GiB。取值范围: cloud:20~500 cloud_efficiency:20~500 cloud_ssd:20~500 cloud_essd:20~500 ephemeral_ssd:20~500 默认值:max{40, ImageSize}。 指定该参数后,系统盘大小必须大于等于max{20, ImageSize}。 SystemDisk.DiskName String 否 cloud_ssdSystem 系统盘的名称。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以 http:// 和 https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。 默认值:空。 SystemDisk.Description String 否 FinanceDept 系统盘的描述。长度为2~256个英文或中文字符,不能以 http:// 和 https:// 开头。 SystemDisk.AutoSnapshotPolicyId String 否 sp-bp12m37ccmxvbmi5**** 系统盘使用的自动快照策略ID。 ScalingConfigurationName String 否 test-sc 伸缩配置的名称,2~64英文或中文字符,以数字、大小写字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。 在同一地域下同一伸缩组内伸缩配置名称唯一。如果您没有指定该参数,则默认使用伸缩配置的ID。 DataDisk.N.Size Integer 否 100 数据盘N的磁盘大小,N的取值范围:1~16,内存单位为GiB。取值范围: cloud:5~2000 cloud_efficiency:20~32768 cloud_ssd:20~32768 cloud_essd:20~32768 ephemeral_ssd:5~800 指定该参数后,磁盘大小必须大于等于快照大小(快照通过SnapshotId指定)。 DataDisk.N.SnapshotId String 否 s-280s7**** 创建数据盘时使用的快照,N的取值范围:1~16。指定该参数后,DataDisk.N.Size会被忽略,实际创建的磁盘大小为指定快照的大小。 如果该快照创建于2013年7月15日或之前,调用会被拒绝,返回参数中会提示InvalidSnapshot.TooOld。 DataDisk.N.Category String 否 cloud_ssd 数据盘N的磁盘种类,N的取值范围:1~16。该参数取值范围: cloud:普通云盘。随实例创建的普通云盘的DeleteWithInstance属性为true。 cloud_efficiency:高效云盘 cloud_ssd:SSD云盘 ephemeral_ssd:本地SSD盘 cloud_essd:ESSD云盘 对于I/O优化实例,默认值为cloud_efficiency。对于非I/O优化实例,默认值为cloud。 DataDisk.N.Device String 否 /dev/xvdb 数据盘挂载点,N的取值范围:1~16。如果您没有指定该参数,则默认在自动创建ECS实例时由系统分配,从/dev/xvdb开始,到/dev/xvdz结束。 DataDisk.N.DeleteWithInstance Boolean 否 true 指定数据盘是否随实例释放,N的取值范围:1~16。该参数取值范围: true:释放实例时,该磁盘随实例一起释放。 false:释放实例时,该磁盘保留不释放。 默认值:true。 该参数只可对独立云盘设置(DataDisk.N.Category为cloud、cloud_efficiency、cloud_ssd或cloud_essd),否则会出现报错。 DataDisk.N.Encrypted String 否 false 数据盘N是否加密,N的取值范围:1~16。该参数取值范围: true:加密 false:不加密 默认值:false。 DataDisk.N.KMSKeyId String 否 0e478b7a-4262-4802-b8cb-00d3fb40**** 数据盘对应的KMS密钥的ID,N的取值范围:1~16。 DataDisk.N.DiskName String 否 cloud_ssdData 数据盘的名称,N的取值范围:1~16。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以 http:// 和 https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。 默认值:空。 DataDisk.N.Description String 否 FinanceDept 数据盘的描述,N的取值范围:1~16。长度为2~256个英文或中文字符,不能以 http:// 和 https:// 开头。 DataDisk.N.AutoSnapshotPolicyId String 否 sp-bp19nq9enxqkomib**** 数据盘使用的自动快照策略ID,N的取值范围:1~16。 LoadBalancerWeight Integer 否 50 后端服务器的权重,取值范围:1~100。 默认值:50。 Tags String 否 {"key1":"value1","key2":"value2", ... "key5":"value5"} ECS实例的标签。标签以键值对方式传入,最多可以使用5组标签。Key和Value的使用要求如下: Key最多支持64个字符,不能以aliyun和acs:开头,不能包含 http:// 或者 https:// 。一旦使用标签,Key不允许为空字符串。 Value最多支持128个字符,不能以aliyun和acs:开头,不能包含 http:// 或者 https:// 。Value可以为空字符串。 UserData String 否 echo hello ecs! ECS实例的自定义数据,需要以Base64方式编码,编码前的原始数据最多为16KB。 KeyPairName String 否 KeyPairTest 登录ECS实例时使用的密钥对的名称。 对Windows实例,该参数将被忽略,默认为空。 对Linux实例,密码登录方式会被初始化成禁止。 RamRoleName String 否 RamRoleTest ECS实例的RAM角色名称。RAM角色名称由RAM提供和维护,您可调用ListRoles查询可用的RAM角色。创建RAM角色的方法请参见CreateRole。 SecurityEnhancementStrategy String 否 Active 是否开启安全加固。取值范围: Active:启用安全加固,只对公共镜像生效。 Deactive:不启用安全加固,对所有镜像类型生效。 InstanceName String 否 Instance**** 使用本伸缩配置自动创建的ECS实例的名称。 HostName String 否 Host**** 云服务器的主机名。点号(.)或连字符(-)不能作为首尾字符,不能连续使用点号(.)或连字符(-)。另外,不同类型实例的命名要求如下: Windows实例:主机名长度为2~15,可以包含大小写字母、数字和连字符(-)。不能包含点号(.),不能全是数字。 其他类型实例(Linux等):主机名长度为2~64,可以包含多个点号(.)。两个点号(.)之间为一段,每段可以包含大小写字母、数字和连字符(-)。 SpotStrategy String 否 NoSpot 后付费实例的抢占策略。取值范围: NoSpot:普通的按量付费实例。 SpotWithPriceLimit:设置上限价格的抢占式实例。 SpotAsPriceGo:系统自动出价,跟随当前市场实际价格。 默认值:NoSpot。 PasswordInherit Boolean 否 false 是否使用镜像预设的密码。使用该参数时,您需要确保使用的镜像已经设置了密码。 SpotPriceLimit.N.InstanceType String 否 ecs.t1.xsmall 抢占式实例的实例规格,N的取值范围:1~10。SpotStrategy取值为SpotWithPriceLimit时生效。 SpotPriceLimit.N.PriceLimit Float 否 0.5 抢占式实例对应的出价,N的取值范围:1~10。SpotStrategy取值为SpotWithPriceLimit时生效。 Password String 否 123-abcABC ECS实例的密码。长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号中的三类字符。特殊符号可以是: ()` ~!@#$%^&*-_+=|{}[]:;'<>,.?/ 其中,Windows实例不能以斜线号(/)为密码首字符。 说明 如果传入Password参数,建议您使用HTTPS协议发送请求,避免密码泄露。 ResourceGroupId String 否 rg-resource**** ECS实例所属资源组的ID。 SecurityGroupIds.N RepeatList 否 sg-bp18kz60mefs**** 将ECS实例同时加入多个安全组。N的取值范围与实例能够加入安全组上限有关。更多详情,请参见使用限制下的安全组章节。 说明 不支持同时指定SecurityGroupId和SecurityGroupIds.N。 HpcClusterId String 否 hpc-clusterid ECS实例所属的EHPC集群的ID。 InstanceDescription String 否 FinaceDept ECS实例的描述。长度为2~256个英文或中文字符,不能以 http:// 和 https:// 开头。 ClientToken String 否 123e4567-e89b-12d3-a456-42665544**** 保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。只支持ASCII字符,且不能超过64个字符。更多详情,请参见如何保证幂等性。 Ipv6AddressCount Integer 否 1 为弹性网卡指定随机生成的IPv6地址数量。 返回数据 名称 类型 示例值 描述 ScalingConfigurationId String asc-bp1ffogfdauy0nu5**** 伸缩配置ID。 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http(s)://[Endpoint]/?Action=CreateScalingConfiguration &ScalingGroupId=asg-bp14wlu85wrpchm0**** &SecurityGroupId=sg-280ih**** &<公共请求参数> 正常返回示例 XML 格式 asc-bp1ffogfdauy0nu5**** 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E", "ScalingConfigurationId": "asc-bp1ffogfdauy0nu5****" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 400 InstanceType.Mismatch The specified scaling configuration and existing active scaling configuration have different instance type. 指定的伸缩配置的实例规格与当前的伸缩配置的实例规格不匹配。 404 InvalidDataDiskSnapshotId.NotFound Snapshot “XXX” does not exist. 不存在指定的快照。 400 InvalidDataDiskSnapshotId.SizeNotSupported The capacity of snapshot “XXX” exceeds the size limit of the specified disk category. 指定快照的大小超过了磁盘大小的限制。 403 InvalidDevice.InUse Device “XXX” has been occupied. 数据盘挂载点重复。 400 InvalidImageId.InstanceTypeMismatch The specified image does not support the specified instance type. 不允许在指定的实例规格下使用该镜像。 404 InvalidImageId.NotFound The specified image does not exist. 该账号下不存在指定的镜像。 400 InvalidKeyPairName.NotFound The specified KeyPairName does not exist in our records. 指定的KeyPairName不存在。 400 InvalidNetworkType.ForRAMRole RAMRole can't be used For classic instance. 经典网络实例不支持RamRoleName参数。 400 InvalidParameter The specified value of parameter KeyPairName is not valid. Windows系统不支持KeyPairName参数。 400 InvalidParameter.Conflict The value of parameter SystemDisk.Category and parameter DataDisk.N.Category are conflict. 指定的系统盘类型和数据盘类型冲突。 400 InvalidRamRole.NotFound The specified RamRoleName does not exist. 不存在指定的RamRoleName。 400 InvalidScalingConfigurationName.Duplicate The specified value of parameter ScalingConfigurationName is duplicated. 已存在相同伸缩配置名。 404 InvalidScalingGroupId.NotFound The specified scaling group does not exist. 该账号下不存在指定的伸缩组。 400 InvalidSecurityGroupId.IncorrectNetworkType The network type of specified security Group does not support this action. 指定的安全组与伸缩组指定网络类型不一致。 404 InvalidSecurityGroupId.NotFound The specified security group does not exist. 该账号下不存在指定的安全组。 400 InvalidSecurityGroupId.VPCMismatch The specified security group and the specified virtual switch are not in the same VPC. 指定的安全组和虚拟交换机不属于同一个虚拟专有网络。 403 InvalidSnapshot.TooOld This operation is denied because the specified snapshot is created before 2013-07-15. 该快照创建于2013年7月15日或之前,调用被拒绝。 403 InvalidSystemDiskCategory.ValueUnauthorized The system disk category is not authorized. 没有创建临时磁盘系统盘的权限。 400 InvalidUserData.Base64FormatInvalid The specified parameter UserData must be base64 encoded. UserData不符合Base64编码规范。 400 InvalidUserData.SizeExceeded The specified parameter UserData exceeds the size. 指定的UserData过长。 403 QuotaExceeded.EphemeralDiskSize Ephemeral disk size quota exceeded. 临时磁盘数据盘总容量超过2TiB(2048GiB)。 400 QuotaExceeded.ScalingConfiguration Scaling configuration quota exceeded in the specified scaling group. 您目前拥有的伸缩配置个数已经达到上限。 400 QuotaExceeded.SecurityGroupInstance Instance quota exceeded in the specified security group. 指定的安全组中添加的ECS实例个数已经达到上限。 调用DescribeScalingConfigurations查询现有的伸缩配置。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 DescribeScalingConfigurations 系统规定参数,取值:DescribeScalingConfigurations。 RegionId String 是 cn-qingdao 伸缩配置所属伸缩组的地域ID。 PageNumber Integer 否 1 伸缩配置列表的页码。起始值:1。 默认值:1 。 PageSize Integer 否 50 分页查询时设置的每页行数。最大值:50。 默认值:10。 ScalingGroupId String 否 asg-bp17pelvl720x3v7**** 伸缩组的ID,您可以查询该伸缩组下所有的伸缩配置。 ScalingConfigurationId.1 String 否 asc-bp17pelvl720x5ub**** ScalingConfigurationId.N为待查询伸缩配置的ID,N的取值范围:1~10。查询结果包括生效和失效的伸缩配置,并通过返回参数LifecycleState进行标识。 ScalingConfigurationName.1 String 否 c1908dd1-690f-4c9b-ab73-350f1f06**** ScalingConfigurationName.N为待查询伸缩配置的名称,N的取值范围:1~10。查询结果会忽略失效的伸缩配置名称,并且不报错。 返回数据 名称 类型 示例值 描述 TotalCount Integer 1 伸缩配置的总数。 PageNumber Integer 1 当前页码。 PageSize Integer 50 每页行数。 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 ScalingConfigurations Array 伸缩配置信息的集合。 示例 请求示例 http(s)://[Endpoint]/?Action=DescribeScalingConfigurations &RegionId=cn-qingdao &<公共请求参数> 正常返回示例 XML 格式 804F240A-8D3E-40A1-BD68-6B333DEA2CA8 1 1 50 2014-08-14T10:58Z centos6u5_64_20G_aliaegis_20140703.vhd ecs.t1.xsmall PayByTraffic 200 0 Active asc-bp1ezrfgoyn5kijl**** c1908dd1-690f-4c9b-ab73-350f1f06**** sg-280ih**** sg-bp18kz60mefs**** cloud 200 cloud s-280s7**** /dev/xvdb JSON 格式 { "RequestId": "804F240A-8D3E-40A1-BD68-6B333DEA2CA8", "TotalCount": "1", "PageNumber": "1", "PageSize": "50", "ScalingConfigurations": { "ScalingConfiguration": { "CreationTime": "2014-08-14T10:58Z", "ImageId": "centos6u5_64_20G_aliaegis_20140703.vhd", "InstanceType": "ecs.t1.xsmall", "InternetChargeType": "PayByTraffic", "InternetMaxBandwidthIn": "200", "InternetMaxBandwidthOut": "0", "LifecycleState": "Active", "ScalingConfigurationId": "asc-bp1ezrfgoyn5kijl****", "ScalingConfigurationName": "c1908dd1-690f-4c9b-ab73-350f1f06****", "ScalingGroupId": "sg-280ih****", "SecurityGroupId": "sg-bp18kz60mefs****", "SystemDiskCategory": "cloud", "DataDisks": { "DataDisk": { "Size": "200", "Category": "cloud", "SnapshotId": "s-280s7****", "Device": "/dev/xvdb" } } } } } 错误码 访问错误中心查看更多错误码。调用DeleteScalingConfiguration删除一个伸缩配置。 接口说明 以下情况不能删除伸缩配置: 伸缩配置在伸缩组中处于生效状态。 伸缩组中仍然存在使用该伸缩配置创建的ECS实例。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 ScalingConfigurationId String 是 eOs27Kb0oXvQcUYjEGel**** 待删除伸缩配置的ID。 Action String 否 DeleteScalingConfiguration 系统规定参数,取值:DeleteScalingConfiguration。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求 ID。无论调用接口成功与否,我们都会返回请求 ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=DeleteScalingConfiguration &ScalingConfigurationId=eOs27Kb0oXvQcUYjEGel**** &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "RequestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 404 InvalidScalingConfigurationId.NotFound The specified scaling configuration does not exist. 指定的伸缩配置在该用户账号下不存在。 400 IncorrectScalingConfigurationLifecycleState The current lifecycle state of specified scaling configuration does not support this action. 指定的伸缩配置未处于Inactive状态。 400 InstanceInUse You cannot delete a scaling configuration or scaling group while there is an instance associated with it. 指定的伸缩配置还有关联的ECS实例未被删除。调用ModifyScalingConfiguration修改一个伸缩配置。 接口说明 如果修改伸缩配置的名称,请注意同一伸缩组下不能存在名称相同的伸缩配置。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 ScalingConfigurationId String 是 asc-**** 待修改伸缩配置的ID。 Action String 否 ModifyScalingConfiguration 系统规定参数,取值: ModifyScalingConfiguration。 Cpu Integer 否 2 vCPU个数。 同时指定CPU和Memory可以定义实例规格范围,例如,CPU=2且Memory=16可以定义配置为2 vCPU和16 GiB的所有实例规格。弹性伸缩会结合IO优化、可用区等因素确定可用实例规格集合,并根据价格排序为您创建价格最低的实例。 说明 该区间配置效果仅在成本优化模式下且伸缩配置未设置实例规格时生效。 DataDisk.N.AutoSnapshotPolicyId String 否 sp-bp19nq9enxqkomib**** 数据盘使用的自动快照策略ID,N的取值范围:1~16。 DataDisk.N.Category String 否 cloud_ssd 数据盘N的磁盘种类,N的取值范围:1~16。该参数取值范围: cloud:普通云盘。随实例创建的普通云盘的DeleteWithInstance属性为true。 cloud_efficiency:高效云盘 cloud_ssd:SSD云盘 cloud_essd:ESSD云盘 ephemeral_ssd:本地SSD盘 DataDisk.N.DeleteWithInstance Boolean 否 true 指定数据盘是否随实例释放,N的取值范围:1~16。该参数取值范围: true:释放实例时,该磁盘随实例一起释放。 false:释放实例时,该磁盘保留不释放。 该参数只可对独立云盘设置(DataDisk.N.Category为cloud、cloud_efficiency、cloud_ssd或cloud_essd),否则会出现报错。 DataDisk.N.Description String 否 FinanceDept 数据盘的描述,N的取值范围:1~16。长度为2~256个英文或中文字符,不能以 http:// 和 https:// 开头。 DataDisk.N.Device String 否 /dev/xvdb 数据盘挂载点,N的取值范围:1~16。如果您没有指定该参数,则默认在自动创建ECS实例时由系统分配,从/dev/xvdb开始,到/dev/xvdz结束。 DataDisk.N.DiskName String 否 cloud_ssdData 数据盘的名称,N的取值范围:1~16。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以 http:// 和 https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。 DataDisk.N.Encrypted String 否 false 数据盘N是否加密,N的取值范围:1~16。该参数取值范围: true:加密 false:不加密 DataDisk.N.KMSKeyId String 否 0e478b7a-4262-4802-b8cb-00d3fb40**** 数据盘对应的KMS密钥的ID,N的取值范围:1~16。 DataDisk.N.Size Integer 否 100 数据盘N的磁盘大小,N的取值范围:1~16,内存单位为GiB。取值范围: cloud:5~2000 cloud_efficiency:20~32768 cloud_ssd:20~32768 cloud_essd:20~32768 ephemeral_ssd:5~800 指定该参数后,磁盘大小必须大于等于快照大小(快照通过SnapshotId指定)。 DataDisk.N.SnapshotId String 否 s-snapshot**** 创建数据盘时使用的快照,N的取值范围:1~16。指定该参数后,DataDisk.N.Size会被忽略,实际创建的磁盘大小为指定快照的大小。 如果该快照创建于2013年7月15日或之前,调用会被拒绝,返回参数中会提示InvalidSnapshot.TooOld。 DeploymentSetId String 否 ds-bp13v7bjnj9gis**** ECS实例所属的部署集的ID。 HostName String 否 Joshu**** 云服务器的主机名。点号(.)或连字符(-)不能作为首尾字符,不能连续使用点号(.)或连字符(-)。另外,不同类型实例的命名要求如下: Windows实例:主机名长度为2~15,可以包含大小写字母、数字和连字符(-)。不能包含点号(.),不能全是数字。 其他类型实例(Linux等):主机名长度为2~64,可以包含多个点号(.)。两个点号(.)之间为一段,每段可以包含大小写字母、数字和连字符(-)。 HpcClusterId String 否 hpc-clusterid ECS实例所属的EHPC集群的ID。 ImageId String 否 centos6u5_64_20G_aliaegis_20140703.vhd 镜像文件ID,自动创建实例时使用的镜像资源。 ImageName String 否 suse11sp3_64_20G_aliaegis_20150428.vhd 镜像文件名称,同一个地域内镜像名称唯一。如果设置了ImageId, ImageName将被忽略。 不支持通过ImageName设置镜像市场镜像。 InstanceDescription String 否 FinaceDept ECS实例的描述。长度为2~256个英文或中文字符,不能以 http:// 和 https:// 开头。 InstanceName String 否 Joshu**** 使用本伸缩配置自动创建的ECS实例的名称。 InstanceTypes.N RepeatList 否 ecs.t1.xsmall 多实例规格参数。如果使用了InstanceTypes.N,InstanceType将被忽略,其中N的取值范围:1~10,即一个伸缩配置内最多可以设置10种实例规格。 N代表当前伸缩配置中实例规格的优先级,编号为1的实例规格优先级最高,实例规格优先级随着编号的增大依次降低。当无法根据优先级较高的实例规格创建出实例时,弹性伸缩服务会自动选择下一优先级的实例规格来创建实例。 InternetChargeType String 否 PayByBandwidth 网络计费类型,取值范围: PayByBandwidth:按带宽计费。此时InternetMaxBandwidthOut即为所选的固定带宽值。 PayByTraffic:按流量计费。此时InternetMaxBandwidthOut只是一个带宽上限,计费以实际产生的网络流量为依据。 InternetMaxBandwidthOut Integer 否 50 公网出带宽最大值,单位为Mbps (Mega bit per second),取值范围: 按带宽计费:0~100,如果您没有指定该参数,则出带宽将自动被设置为0Mbps。 按流量计费:0~100,如果您没有指定该参数,则会出现报错。 IoOptimized String 否 none 是否为I/O优化实例。取值范围: none:非I/O优化实例。 optimized:I/O优化实例。 KeyPairName String 否 null 登录ECS实例时使用的密钥对的名称。 对Windows实例,该参数将被忽略,默认为空。 对Linux实例,密码登录方式会被初始化成禁止。 LoadBalancerWeight Integer 否 50 后端服务器的权重,取值范围:0~100。 Memory Integer 否 16 内存大小。 同时指定CPU和Memory可以定义实例规格范围,例如,CPU=2且Memory=16可以定义配置为2 vCPU和16 GiB的所有实例规格。弹性伸缩会结合IO优化、可用区等因素确定可用实例规格集合,并根据价格排序为您创建价格最低的实例。 说明 该区间配置效果仅在成本优化模式下且伸缩配置未设置实例规格时生效。 Override Boolean 否 true 是否覆盖。取值范围: true false PasswordInherit Boolean 否 false 是否使用镜像预设的密码。使用该参数时,您需要确保使用的镜像已经设置了密码。 RamRoleName String 否 RamRoleTest ECS实例的RAM角色名称。RAM角色名称由RAM提供和维护,您可调用ListRoles查询可用的RAM角色。创建RAM角色的方法请参见CreateRole。 ResourceGroupId String 否 abcd1234abcd**** ECS实例所属资源组的ID。 ScalingConfigurationName String 否 test-modify 伸缩配置的名称,2~64个英文或中文字符,以数字、大小写字母或中文开头,可包含数字、下划线(_)、连字符(-)或点号(.)。 在同一地域下同一伸缩组内伸缩配置名称唯一。如果您没有指定该参数,则默认使用伸缩配置的ID。 SecurityGroupId String 否 sg-F876F**** ECS实例所属的安全组的ID,同一个安全组内的ECS实例可以互相访问。 SecurityGroupIds.N RepeatList 否 sg-bp18kz60mefs**** 将ECS实例同时加入多个安全组。N的取值范围与实例能够加入安全组上限有关。更多详情,请参见使用限制下的安全组章节。 说明 不支持同时指定SecurityGroupId和SecurityGroupIds.N。 SpotPriceLimit.N.InstanceType String 否 ecs.t1.small 抢占式实例的实例规格,N的取值范围:1~10。SpotStrategy取值为SpotWithPriceLimit时生效。 SpotPriceLimit.N.PriceLimit Float 否 0.125 抢占式实例对应的出价,N的取值范围:1~10。SpotStrategy取值为SpotWithPriceLimit时生效。 SpotStrategy String 否 NoSpot 后付费实例的抢占策略。取值范围: NoSpot:普通的按量付费实例。 SpotWithPriceLimit:设置上限价格的抢占式实例。 SpotAsPriceGo:系统自动出价,跟随当前市场实际价格。 SystemDisk.AutoSnapshotPolicyId String 否 sp-bp12m37ccmxvbmi5**** 系统盘使用的自动快照策略ID。 SystemDisk.Category String 否 cloud_efficiency 系统盘的磁盘种类。取值范围: cloud:普通云盘 cloud_efficiency:高效云盘 cloud_ssd:SSD云盘 cloud_essd:ESSD云盘 ephemeral_ssd:本地SSD盘 SystemDisk.Description String 否 FinanceDept 系统盘的描述。长度为2~256个英文或中文字符,不能以 http:// 和 https:// 开头。 SystemDisk.DiskName String 否 cloud_ssdSystem 系统盘的名称。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以 http:// 和 https:// 开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。 SystemDisk.Size Integer 否 50 系统盘的大小,单位:GiB。取值范围: cloud:20~500 cloud_efficiency:20~500 cloud_ssd:20~500 cloud_essd:20~500 ephemeral_ssd:20~500 指定该参数后,系统盘大小必须大于等于max{20, ImageSize}。 Tags String 否 “key1”:”value1” ECS实例的标签。标签以键值对方式传入,最多可以使用5组标签。Key和Value的使用要求如下: Key最多支持64个字符,不能以aliyun和acs:开头,不能包含 http:// 或者 https:// 。一旦使用标签,Key不允许为空字符串。 Value最多支持128个字符,不能以aliyun和acs:开头,不能包含 http:// 或者 https:// 。Value可以为空字符串。 UserData String 否 echo hello ecs! ECS实例的自定义数据,需要以Base64方式编码,编码前的原始数据最多为16KB。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http(s)://[Endpoint]/?Action=ModifyScalingConfiguration &ScalingConfigurationId=asc-**** &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "requestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 403 Forbidden.Unauthorized A required authorization for the specified action is not supplied. 未授权操作当前Action。 404 InvalidDataDiskSnapshotId.NotFound Snapshot “XXX” does not exist. 不存在指定的快照。 400 InvalidDataDiskSnapshotId.SizeNotSupported The capacity of snapshot “XXX” exceeds the size limit of the specified disk category. 指定快照的大小超过了磁盘大小的限制。 404 InvalidImageId.NotFound The specified image does not exist. 指定的镜像不存在。 400 InvalidKeyPairName.NotFound The specified KeyPairName does not exist in our records. 指定的KeyPairName不存在。 400 InvalidNetworkType.ForRAMRole RAMRole can’t be used For classic instance. 经典网络实例不支持RamRoleName参数。 400 InvalidParamter The specified value of parameter is not valid. 指定的参数值无效。 400 InvalidScalingConfigurationName.Duplicate The specified value of parameter is duplicated. 伸缩配置名已存在。 400 InvalidSecurityGroupId.IncorrectNetworkType The network type of specified Security Group does not support this action. 指定的安全组与伸缩组指定网络类型不一致。 400 InvalidSecurityGroupId.VPCMismatch The specified security group and the specified virtual switch are not in the same VPC. 指定的安全组和虚拟交换机不属于同一个虚拟专有网络。 400 InvalidTags.KeyValue The specified tags key/value cannot be empty. 必须指定Tags参数。 400 InvalidTags.ListSize The specified tags list size cannot be more than “5”. Tags列表长度超过限制长度。 400 InvalidUserData.Base64FormatInvalid The specified parameter UserData must be base64 encoded. UserData不符合Base64编码规范。 400 InvalidUserData.SizeExceeded The specified parameter UserData exceeds the size. 指定的UserData过长。
1934890530796658 2020-03-25 10:04:36 0 浏览量 回答数 0

回答

PHP面试干货 1、进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 2、apache默认使用进程管理还是线程管理?如何判断并设置最大连接数? 一个进程可以开多个线程 默认是进程管理 默认有一个主进程 Linux: ps -aux | grep httpd | more 一个子进程代表一个用户的连接 Conf/extra/httpd-mpm.conf 多路功能模块 http -l 查询当前apache处于什么模式下 3、单例模式 单例模式需求:只能实例化产生一个对象 如何实现: 私有化构造函数 禁止克隆对象 提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一对象 需要一个保存类的静态属性 class demo { private static $MyObject; //保存对象的静态属性 private function __construct(){ //私有化构造函数 } private function __clone(){ //禁止克隆 } public static function getInstance(){ if(! (self::$MyObject instanceof self)){ self::$MyObject = new self; } return self::$MyObject; } } 4、安装完Apache后,在http.conf中配置加载PHP文件以Apache模块的方式安装PHP,在文件http.conf中首先要用语句LoadModule php5_module "e:/php/php5apache2.dll"动态装载PHP模块,然后再用语句AddType application/x-httpd-php .php 使得Apache把所有扩展名为PHP的文件都作为PHP脚本处理 5、debug_backtrace()函数能返回脚本里的任意行中调用的函数的名称。该函数同时还经常被用在调试中,用来判断错误是如何发生的 function one($str1, $str2) { two("Glenn", "Quagmire"); } function two($str1, $str2) { three("Cleveland", "Brown"); } function three($str1, $str2) { print_r(debug_backtrace()); } one("Peter", "Griffin"); Array ( [0] => Array ( [file] => D:\www\test\result.php [line] => 9 [function] => three [args] => Array ( [0] => Cleveland [1] => Brown ) ) [1] => Array ( [file] => D:\www\test\result.php [line] => 5 [function] => two [args] => Array ( [0] => Glenn [1] => Quagmire ) ) [2] => Array ( [file] => D:\www\test\result.php [line] => 16 [function] => one [args] => Array ( [0] => Peter [1] => Griffin ) ) ) 6、输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 — 192.168.1.150之间 echo $ip=getenv('REMOTE_ADDR'); $ip=str_replace('.','',$ip); if($ip<1921681150 && $ip>1921681100) { echo 'ip在192.168.1.100—–192.168.1.150之间'; } else { echo 'ip不在192.168.1.100—–192.168.1.150之间'; } 7、请将2维数组按照name的长度进行重新排序,按照顺序将id赋值 $tarray = array( array('id' => 0, 'name' => '123'), array('id' => 0, 'name' => '1234'), array('id' => 0, 'name' => '1235'), array('id' => 0, 'name' => '12356'), array('id' => 0, 'name' => '123abc') ); foreach($tarray as $key=>$val) { $c[]=$val['name']; } function aa($a,$b) { if(strlen($a)==strlen($b)) return 0; return strlen($a)>strlen($b)?-1:1; } usort($c,'aa'); $len=count($c); for($i=0;$i<$len;$i++) { $t[$i]['id']=$i+1; $t[$i]['name']=$c[$i]; } print_r($t); 8、表单数据提交方式POST和GET的区别,URL地址传递的数据最大长度是多少? POST方式提交数据用户不可见,是数据更安全,最大长度不受限制,而GET方式传值在URL地址可以看到,相对不安全,对大长度是2048字节。 9、SESSION和COOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历 SESSION和COOKIE都能够使值在页面之间进行传递,SESSION存储在服务器端,数据更安全,COOKIE保存在客户端,用户使用手段可以进行修改,SESSION依赖于COOKIE进行传递的。Session遍历使用$_SESSION[]取值,cookie遍历使用$_COOKIE[]取值。 10、什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么 索引用来快速地寻找那些具有特定值的记录。 主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。 索引的缺点: 1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。 3、当对表中的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 11、数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案 瓶颈主要有: 1、磁盘搜索 优化方法是:将数据分布在多个磁盘上 2、磁盘读/写 优化方法是:从多个磁盘并行读写。 3、CPU周期 优化方法:扩充内存 4、内存带宽 12、include和require区别 include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。 require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。 13、文件上传时设计到点 和文件上传有关的php.ini配置选项(File Uploads): file_uploads=On/Off:文件是否允许上传 upload_max_filesize上传文件时,单个文件的最大大小 post_max_size:提交表单时,整个post表单的最大大小 max_file_uploads =20上传文件的个数 内存占用,脚本最大执行时间也间接影响到文件的上传 14、header常见状态 //200 正常状态 header('HTTP/1.1 200 OK'); // 301 永久重定向,记得在后面要加重定向地址 Location:$url header('HTTP/1.1 301 Moved Permanently'); // 重定向,其实就是302 暂时重定向 header('Location: http://www.maiyoule.com/'); // 设置页面304 没有修改 header('HTTP/1.1 304 Not Modified'); // 显示登录框, header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="登录信息"'); echo '显示的信息!'; // 403 禁止访问 header('HTTP/1.1 403 Forbidden'); // 404 错误 header('HTTP/1.1 404 Not Found'); // 500 服务器错误 header('HTTP/1.1 500 Internal Server Error'); // 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.maiyoule.com/ /> 相同) header('Refresh: 3; url=http://www.maiyoule.com/'); echo '10后跳转到http://www.maiyoule.com'; // 重写 X-Powered-By 值 header('X-Powered-By: PHP/5.3.0'); header('X-Powered-By: Brain/0.6b'); //设置上下文语言 header('Content-language: en'); // 设置页面最后修改时间(多用于防缓存) $time = time() - 60; //建议使用filetime函数来设置页面缓存时间 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); // 设置内容长度 header('Content-Length: 39344'); // 设置头文件类型,可以用于流文件或者文件下载 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary'); readfile('example.zip');//读取文件到客户端 //禁用页面缓存 header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Pragma: no-cache'); //设置页面头信息 header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); header('Content-Type: image/jpeg'); header('Content-Type: application/zip'); header('Content-Type: application/pdf'); header('Content-Type: audio/mpeg'); header('Content-Type: application/x-shockwave-flash'); //.... 至于Content-Type 的值 可以去查查 w3c 的文档库,那里很丰富 15、ORM和ActiveRecord ORM:object relation mapping,即对象关系映射,简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数据库。还可以隔离底层数据库层,我们不需要关心我们使用的是mysql还是其他的关系型数据库 ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。 ActiveRecord的主要思想是: 1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field; 2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;; 3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑; ActiveRecord比较适用于: 1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作; 2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中; 3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了; 这些优点使ActiveRecord特别适合WEB快速开发。 16、斐波那契方法,也就是1 1 2 3 5 8 ……,这里给出两种方法,大家可以对比下,看看哪种快,以及为什么 function fibonacci($n){ if($n == 0){ return 0; } if($n == 1){ return 1; } return fibonacci($n-1)+fibonacci($n-2); } function fibonacci($n){ for($i=0; $i<$n; $i++){ $r[] = $i<2 ? 1 : $r[$i-1]+$r[$i-2]; } return $r[--$i]; } 17、约瑟夫环,也就是常见的数猴子,n只猴子围成一圈,每只猴子下面标了编号,从1开始数起,数到m那么第m只猴子便退出,依次类推,每数到m,那么那个位置的猴子退出,那么最后剩下的猴子下的编号是啥。 function yuesefu($n,$m) { $r=0; for($i=2; $i<=$n; $i++) { $r=($r+$m)%$i; } return $r+1; } 18、冒泡排序,大致是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束 function bubbleSort($arr){ for($i=0, $len=count($arr); $i<$len; $i++){ for($j=0; $j<$len; $j++){ if($arr[$i]<$arr[$j]){ $tmp = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $tmp; } } } return $arr; } 19、快速排序,也就是找出一个元素(理论上可以随便找一个)作为基准,然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。 function quickSort($arr){ $len = count($arr); if($len <=1){ return $arr; } $key = $arr[0]; $leftArr = $rightArr= array(); for($i=1; $i<$len; $i++){ if($arr[$i] <= $key){ $leftArr[] = $arr[$i]; } else{ $rightArr[] = $arr[$i]; } } $leftArr = quickSort($leftArr); $rightArr = quickSort($rightArr); return array_merge($leftArr, array($key), $rightArr); } 20、(递归的)列出目录下所有文件及目录,这里也有两种方法 function listDir($path){ $res = dir($path); while($file = $res->read()){ if($file == '.' || $file == '..'){ continue; } if(is_dir($path . '/' .$file)){ echo $path . '/' .$file . "\r\n"; listDir($path . '/' .$file); } else{ echo $path . '/' .$file . "\r\n"; } } $res->close(); } function listDir($path){ if(is_dir($path)){ if(FALSE !== ($res = opendir($path))){ while(FALSE !== ($file = readdir($res))){ if($file == '.' || $file == '..'){ continue; } $subPath = $path . '/' . $file; if(is_dir($subPath)){ echo $subPath . "\r\n"; listDir($subPath); } else{ echo $subPath . "\r\n"; } } } } } 21、找出相对的目录,比如/a/b/c/d/e.php相对于/a/b/13/34/c.php是/c/d/ function ralativePath($a, $b){ $a = explode('/', dirname($a)); $b = explode('/', dirname($b)); $c = '/'; foreach ($a as $k=> $v){ if($v != $b[$k]){ $c .= $v . '/'; } } echo $c; } 22、快速找出url中php后缀 function get_ext($url){ $data = parse_url($url); return pathinfo($data['path'], PATHINFO_EXTENSION); } 23、正则题,使用正则抓取网页,以网页meta为utf8为准,若是抓取的网页编码为big5之类的,需要转化为utf8再收录 function preg_meta($meta){ $replacement = "\\1utf8\\6\\7"; $pattern = '#(<meta\s+http-equiv=(\'|"|)Content-Type(\'|"|)\s+content=(\'|"|)text/html; charset=)(\w+)(\'|"|)(>)#i'; return preg_replace($pattern, $replacement, $meta); } echo preg_meta("<meta http-equiv=Content-Type content='text/html; charset=big5'><META http-equiv=\"Content-Type\" content='text/html; charset=big5'>"); 24、不用php的反转函数倒序输出字符串,如abc,反序输出cba function revstring($str){ for($i=strlen($str)-1; $i>=0; $i--){ echo $str{$i}; } } revstring('abc'); 25、常见端口 TCP 21端口:FTP 文件传输服务 SSH 22端口:SSH连接linux服务器,通过SSH连接可以远程管理Linux等设备 TCP 23端口:TELNET 终端仿真服务 TCP 25端口:SMTP 简单邮件传输服务 UDP 53端口:DNS 域名解析服务 TCP 80端口:HTTP 超文本传输服务 TCP 110端口:POP3 “邮局协议版本3”使用的端口 TCP 443端口:HTTPS 加密的超文本传输服务 TCP 1521端口:Oracle数据库服务 TCP 1863端口:MSN Messenger的文件传输功能所使用的端口 TCP 3389端口:Microsoft RDP 微软远程桌面使用的端口 TCP 5631端口:Symantec pcAnywhere 远程控制数据传输时使用的端口 UDP 5632端口:Symantec pcAnywhere 主控端扫描被控端时使用的端口 TCP 5000端口:MS SQL Server使用的端口 UDP 8000端口:腾讯QQ 26、linux常用的命令 top linux进程实时监控 ps 在Linux中是查看进程的命令。ps查看正处于Running的进程 mv 为文件或目录改名或将文件由一个目录移入另一个目录中。 find 查找文件 df 可显示所有文件系统对i节点和磁盘块的使用情况。 cat 打印文件类容 chmod 变更文件或目录的权限 chgrp 文件或目录的权限的掌控以拥有者及所诉群组来管理。可以使用chgrp指令取变更文件与目录所属群组 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。 wc 为统计指定文件中的字节数、字数、行数,并将统计结果显示输出 27、对于大流量的网站,您采用什么样的方法来解决访问量问题 首先,确认服务器硬件是否足够支持当前的流量 其次,优化数据库访问。 第三,禁止外部的盗链。 第四,控制大文件的下载。 第五,使用不同主机分流主要流量 第六,使用流量分析统计软件 28、$_SERVER常用的字段 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名 $_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称 $_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT” $_SERVER['QUERY_STRING'] #查询(query)的字符串 $_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容 $_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址 $_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址 $_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名 $_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名 $_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用 $_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html” 29、安装php扩展 进入扩展的目录 phpize命令得到configure文件 ./configure --with-php-config=/usr/local/php/bin/php-config make & make install 在php.ini中加入扩展名称.so 重启web服务器(nginx/apache) 30、php-fpm与nginx PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析。 FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求 #fastcgi FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。 FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 Nginx+FastCGI运行原理 Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。 31、ajax全称“Asynchronous Javascript And XML”(异步JavaScript和XML)
小川游鱼 2019-12-02 01:41:29 0 浏览量 回答数 0

回答

PHP面试干货 1、进程和线程 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。 2、apache默认使用进程管理还是线程管理?如何判断并设置最大连接数? 一个进程可以开多个线程 默认是进程管理 默认有一个主进程 Linux: ps -aux | grep httpd | more 一个子进程代表一个用户的连接 Conf/extra/httpd-mpm.conf 多路功能模块 http -l 查询当前apache处于什么模式下 3、单例模式 单例模式需求:只能实例化产生一个对象 如何实现: 私有化构造函数 禁止克隆对象 提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一对象 需要一个保存类的静态属性 class demo { private static $MyObject; //保存对象的静态属性 private function __construct(){ //私有化构造函数 } private function __clone(){ //禁止克隆 } public static function getInstance(){ if(! (self::$MyObject instanceof self)){ self::$MyObject = new self; } return self::$MyObject; } } 4、安装完Apache后,在http.conf中配置加载PHP文件以Apache模块的方式安装PHP,在文件http.conf中首先要用语句LoadModule php5_module "e:/php/php5apache2.dll"动态装载PHP模块,然后再用语句AddType application/x-httpd-php .php 使得Apache把所有扩展名为PHP的文件都作为PHP脚本处理 5、debug_backtrace()函数能返回脚本里的任意行中调用的函数的名称。该函数同时还经常被用在调试中,用来判断错误是如何发生的 function one($str1, $str2) { two("Glenn", "Quagmire"); } function two($str1, $str2) { three("Cleveland", "Brown"); } function three($str1, $str2) { print_r(debug_backtrace()); } one("Peter", "Griffin"); Array ( [0] => Array ( [file] => D:\www\test\result.php [line] => 9 [function] => three [args] => Array ( [0] => Cleveland [1] => Brown ) ) [1] => Array ( [file] => D:\www\test\result.php [line] => 5 [function] => two [args] => Array ( [0] => Glenn [1] => Quagmire ) ) [2] => Array ( [file] => D:\www\test\result.php [line] => 16 [function] => one [args] => Array ( [0] => Peter [1] => Griffin ) ) ) 6、输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 — 192.168.1.150之间 echo $ip=getenv('REMOTE_ADDR'); $ip=str_replace('.','',$ip); if($ip<1921681150 && $ip>1921681100) { echo 'ip在192.168.1.100—–192.168.1.150之间'; } else { echo 'ip不在192.168.1.100—–192.168.1.150之间'; } 7、请将2维数组按照name的长度进行重新排序,按照顺序将id赋值 $tarray = array( array('id' => 0, 'name' => '123'), array('id' => 0, 'name' => '1234'), array('id' => 0, 'name' => '1235'), array('id' => 0, 'name' => '12356'), array('id' => 0, 'name' => '123abc') ); foreach($tarray as $key=>$val) { $c[]=$val['name']; } function aa($a,$b) { if(strlen($a)==strlen($b)) return 0; return strlen($a)>strlen($b)?-1:1; } usort($c,'aa'); $len=count($c); for($i=0;$i<$len;$i++) { $t[$i]['id']=$i+1; $t[$i]['name']=$c[$i]; } print_r($t); 8、表单数据提交方式POST和GET的区别,URL地址传递的数据最大长度是多少? POST方式提交数据用户不可见,是数据更安全,最大长度不受限制,而GET方式传值在URL地址可以看到,相对不安全,对大长度是2048字节。 9、SESSION和COOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历 SESSION和COOKIE都能够使值在页面之间进行传递,SESSION存储在服务器端,数据更安全,COOKIE保存在客户端,用户使用手段可以进行修改,SESSION依赖于COOKIE进行传递的。Session遍历使用$_SESSION[]取值,cookie遍历使用$_COOKIE[]取值。 10、什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么 索引用来快速地寻找那些具有特定值的记录。 主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。 索引的缺点: 1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。 3、当对表中的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 11、数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案 瓶颈主要有: 1、磁盘搜索 优化方法是:将数据分布在多个磁盘上 2、磁盘读/写 优化方法是:从多个磁盘并行读写。 3、CPU周期 优化方法:扩充内存 4、内存带宽 12、include和require区别 include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。 require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。 13、文件上传时设计到点 和文件上传有关的php.ini配置选项(File Uploads): file_uploads=On/Off:文件是否允许上传 upload_max_filesize上传文件时,单个文件的最大大小 post_max_size:提交表单时,整个post表单的最大大小 max_file_uploads =20上传文件的个数 内存占用,脚本最大执行时间也间接影响到文件的上传 14、header常见状态 //200 正常状态 header('HTTP/1.1 200 OK'); // 301 永久重定向,记得在后面要加重定向地址 Location:$url header('HTTP/1.1 301 Moved Permanently'); // 重定向,其实就是302 暂时重定向 header('Location: http://www.maiyoule.com/'); // 设置页面304 没有修改 header('HTTP/1.1 304 Not Modified'); // 显示登录框, header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="登录信息"'); echo '显示的信息!'; // 403 禁止访问 header('HTTP/1.1 403 Forbidden'); // 404 错误 header('HTTP/1.1 404 Not Found'); // 500 服务器错误 header('HTTP/1.1 500 Internal Server Error'); // 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.maiyoule.com/ /> 相同) header('Refresh: 3; url=http://www.maiyoule.com/'); echo '10后跳转到http://www.maiyoule.com'; // 重写 X-Powered-By 值 header('X-Powered-By: PHP/5.3.0'); header('X-Powered-By: Brain/0.6b'); //设置上下文语言 header('Content-language: en'); // 设置页面最后修改时间(多用于防缓存) $time = time() - 60; //建议使用filetime函数来设置页面缓存时间 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); // 设置内容长度 header('Content-Length: 39344'); // 设置头文件类型,可以用于流文件或者文件下载 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary'); readfile('example.zip');//读取文件到客户端 //禁用页面缓存 header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Pragma: no-cache'); //设置页面头信息 header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); header('Content-Type: image/jpeg'); header('Content-Type: application/zip'); header('Content-Type: application/pdf'); header('Content-Type: audio/mpeg'); header('Content-Type: application/x-shockwave-flash'); //.... 至于Content-Type 的值 可以去查查 w3c 的文档库,那里很丰富 15、ORM和ActiveRecord ORM:object relation mapping,即对象关系映射,简单的说就是对象模型和关系模型的一种映射。为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数据库。还可以隔离底层数据库层,我们不需要关心我们使用的是mysql还是其他的关系型数据库 ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。 ActiveRecord的主要思想是: 1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field; 2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;; 3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑; ActiveRecord比较适用于: 1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作; 2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中; 3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了; 这些优点使ActiveRecord特别适合WEB快速开发。 16、斐波那契方法,也就是1 1 2 3 5 8 ……,这里给出两种方法,大家可以对比下,看看哪种快,以及为什么 function fibonacci($n){ if($n == 0){ return 0; } if($n == 1){ return 1; } return fibonacci($n-1)+fibonacci($n-2); } function fibonacci($n){ for($i=0; $i<$n; $i++){ $r[] = $i<2 ? 1 : $r[$i-1]+$r[$i-2]; } return $r[--$i]; } 17、约瑟夫环,也就是常见的数猴子,n只猴子围成一圈,每只猴子下面标了编号,从1开始数起,数到m那么第m只猴子便退出,依次类推,每数到m,那么那个位置的猴子退出,那么最后剩下的猴子下的编号是啥。 function yuesefu($n,$m) { $r=0; for($i=2; $i<=$n; $i++) { $r=($r+$m)%$i; } return $r+1; } 18、冒泡排序,大致是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束 function bubbleSort($arr){ for($i=0, $len=count($arr); $i<$len; $i++){ for($j=0; $j<$len; $j++){ if($arr[$i]<$arr[$j]){ $tmp = $arr[$j]; $arr[$j] = $arr[$i]; $arr[$i] = $tmp; } } } return $arr; } 19、快速排序,也就是找出一个元素(理论上可以随便找一个)作为基准,然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。 function quickSort($arr){ $len = count($arr); if($len <=1){ return $arr; } $key = $arr[0]; $leftArr = $rightArr= array(); for($i=1; $i<$len; $i++){ if($arr[$i] <= $key){ $leftArr[] = $arr[$i]; } else{ $rightArr[] = $arr[$i]; } } $leftArr = quickSort($leftArr); $rightArr = quickSort($rightArr); return array_merge($leftArr, array($key), $rightArr); } 20、(递归的)列出目录下所有文件及目录,这里也有两种方法 function listDir($path){ $res = dir($path); while($file = $res->read()){ if($file == '.' || $file == '..'){ continue; } if(is_dir($path . '/' .$file)){ echo $path . '/' .$file . "\r\n"; listDir($path . '/' .$file); } else{ echo $path . '/' .$file . "\r\n"; } } $res->close(); } function listDir($path){ if(is_dir($path)){ if(FALSE !== ($res = opendir($path))){ while(FALSE !== ($file = readdir($res))){ if($file == '.' || $file == '..'){ continue; } $subPath = $path . '/' . $file; if(is_dir($subPath)){ echo $subPath . "\r\n"; listDir($subPath); } else{ echo $subPath . "\r\n"; } } } } } 21、找出相对的目录,比如/a/b/c/d/e.php相对于/a/b/13/34/c.php是/c/d/ function ralativePath($a, $b){ $a = explode('/', dirname($a)); $b = explode('/', dirname($b)); $c = '/'; foreach ($a as $k=> $v){ if($v != $b[$k]){ $c .= $v . '/'; } } echo $c; } 22、快速找出url中php后缀 function get_ext($url){ $data = parse_url($url); return pathinfo($data['path'], PATHINFO_EXTENSION); } 23、正则题,使用正则抓取网页,以网页meta为utf8为准,若是抓取的网页编码为big5之类的,需要转化为utf8再收录 function preg_meta($meta){ $replacement = "\\1utf8\\6\\7"; $pattern = '#(<meta\s+http-equiv=(\'|"|)Content-Type(\'|"|)\s+content=(\'|"|)text/html; charset=)(\w+)(\'|"|)(>)#i'; return preg_replace($pattern, $replacement, $meta); } echo preg_meta("<meta http-equiv=Content-Type content='text/html; charset=big5'><META http-equiv=\"Content-Type\" content='text/html; charset=big5'>"); 24、不用php的反转函数倒序输出字符串,如abc,反序输出cba function revstring($str){ for($i=strlen($str)-1; $i>=0; $i--){ echo $str{$i}; } } revstring('abc'); 25、常见端口 TCP 21端口:FTP 文件传输服务 SSH 22端口:SSH连接linux服务器,通过SSH连接可以远程管理Linux等设备 TCP 23端口:TELNET 终端仿真服务 TCP 25端口:SMTP 简单邮件传输服务 UDP 53端口:DNS 域名解析服务 TCP 80端口:HTTP 超文本传输服务 TCP 110端口:POP3 “邮局协议版本3”使用的端口 TCP 443端口:HTTPS 加密的超文本传输服务 TCP 1521端口:Oracle数据库服务 TCP 1863端口:MSN Messenger的文件传输功能所使用的端口 TCP 3389端口:Microsoft RDP 微软远程桌面使用的端口 TCP 5631端口:Symantec pcAnywhere 远程控制数据传输时使用的端口 UDP 5632端口:Symantec pcAnywhere 主控端扫描被控端时使用的端口 TCP 5000端口:MS SQL Server使用的端口 UDP 8000端口:腾讯QQ 26、linux常用的命令 top linux进程实时监控 ps 在Linux中是查看进程的命令。ps查看正处于Running的进程 mv 为文件或目录改名或将文件由一个目录移入另一个目录中。 find 查找文件 df 可显示所有文件系统对i节点和磁盘块的使用情况。 cat 打印文件类容 chmod 变更文件或目录的权限 chgrp 文件或目录的权限的掌控以拥有者及所诉群组来管理。可以使用chgrp指令取变更文件与目录所属群组 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。 wc 为统计指定文件中的字节数、字数、行数,并将统计结果显示输出 27、对于大流量的网站,您采用什么样的方法来解决访问量问题 首先,确认服务器硬件是否足够支持当前的流量 其次,优化数据库访问。 第三,禁止外部的盗链。 第四,控制大文件的下载。 第五,使用不同主机分流主要流量 第六,使用流量分析统计软件 28、$_SERVER常用的字段 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名 $_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称 $_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT” $_SERVER['QUERY_STRING'] #查询(query)的字符串 $_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容 $_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址 $_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址 $_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名 $_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名 $_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用 $_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如,“/index.html” 29、安装php扩展 进入扩展的目录 phpize命令得到configure文件 ./configure --with-php-config=/usr/local/php/bin/php-config make & make install 在php.ini中加入扩展名称.so 重启web服务器(nginx/apache) 30、php-fpm与nginx PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析。 FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求 #fastcgi FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。 FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。 Nginx+FastCGI运行原理 Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。 31、ajax全称“Asynchronous Javascript And XML”(异步JavaScript和XML)
小川游鱼 2019-12-02 01:41:29 0 浏览量 回答数 0

问题

GitLab运行程序不一致:exec-maven-plugin:1.6.0:java org.apa

我们在GitLab上有一个自动化项目,该项目使用我们专用的“外壳” GitLab运行器。项目本身是一个Selenium项目,它运行Cucumbers测试并生成报告。它最近在Jenkins上运行,没有...
垚tutu 2019-12-01 22:07:22 2 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT