exec相关知识
-
lxc exec 介绍 最近,我对 lxc exec 进行了几个改进。如果你不知道它的话我介绍一下,lxc exec 是 LXD 的客户端工具,使用 LXD 客户端 api 与 LXD 守护程序通信,并执行用户想要执行的各种程序,以下是你可以使用的一个例子:我们的主要目标之一就是使 lxc exec 与 ssh 类似,因为它是交互式或非交互式远程运行命令的标准。这使得 把 lxc exec 做得很好变得有点棘手。1、 处理后台任务一个长期存在的问题当然是如何正确处理后台任务。这是一个关于 LXD 2.7 实例的问题的例子:你可以看到,在后台执行任务将导致 lxc exec 无法退出。许多命令可以触发此问题:chb@conventiont|~ > lxc exec zest1 bash root@zest1:~# yes &y y y . . .现在没有什么能救你了。yes 将会永远直接写入stdout。问题的根源在于 stdout 是一直打开着
-
php开启exec等函数php中开启exec,system等函数调用系统命令修改php.ini文件关掉安全模式 safe_mode = off然后在看看 禁用函数列表disable_functions = proc_open, popen, exec, system, shell_exec, passthru这里要把 exec 去掉重启 apache
-
Docker命令-docker execdocker exec原文描述在运行的容器中执行命令使用$ docker exec [options] container command [arg...]选项名称默认描述--detach, -d后台运行模式,在后台执行命令相关命令--detach-keys覆盖容器后台运行的一些参数信息--env, -e设置环境变量--interactive, -i展示容器输入信息STDIN--privileged为命令提供一些扩展权限--tty, -t命令行交互模式--user, -u设置用户名(format: <name|uid>[:<group|gid>])--workdir, -w指定容器内的目录docker exec是需要容器处于运行中且PID 1进程也处于运行中才能执行的操作。命令执行后会进入容器的默认工作目录,如果在Dockerfile中指定了工作目录,则会进入Dokcerfile指定的目录,如果命令中指定了工作目录-w则会进
-
php exec函数的使用方法使用php模拟我们常用的DOS命令ping命令的方法,这中间用到了exec函数并做函数解释,还有相关函数system的使用。使用php模拟我们常用的DOS命令ping命令的方法,这里主要用到的是php的内置函数exec来调用系统的ping命令,从而实现ping命令功能的。代码如下:<?php$to_ping='www.phpernote.com';$count=2;$psize=66;echo "正在执行php ping命令,请等待...\n<br><br>";flush();while(1){echo "<pre>";exec("ping -c $count -s $psize $to_ping", $list);for($i=0;$i<count($list);$i++){print $list[$i]."\n";}echo "</p
exec相关课程
exec相关教程
- 1. none 模式 容器有自己的网络命名空间,但不做任何配置,它与宿主机、与其他容器都不连通的。我们新建一个 none 模式的 busybox 镜像 b0:docker run -d -t --network none --name b0 busybox使用 docker exec b0 ip a 查看它的网络状态, 验证它仅有 lo 接口,不能与容器外通信:两个容器之间可以直连通信,但不通过主机网桥进行桥接。解决的办法是创建一对 peer 接口,分别放到两个容器中,配置成点到点链路类型即可。⚠️ 以下操作需要在 Linux 下进行:首先启动 2 个容器:docker run -it -d --net=none --name=none1 busyboxdocker run -it -d --net=none --name=none2 busybox 找到这两个容器的进程号:docker inspect -f '{{.State.Pid}}' none1 #6545docker inspect -f '{{.State.Pid}}' none2 #6606然后创建网络命名空间的跟踪文件:sudo mkdir -p /var/run/netnssudo ln -s /proc/6545/ns/net /var/run/netns/6545sudo ln -s /proc/6606/ns/net /var/run/netns/6606创建一对 peer 接口,然后配置路由: sudo ip link add A type veth peer name B sudo ip link set A netns 6545 sudo ip netns exec 6545 ip addr add 10.1.1.1/32 dev A sudo ip netns exec 6545 ip link set A up sudo ip netns exec 6545 ip route add 10.1.1.2/32 dev A sudo ip link set B netns 6606 sudo ip netns exec 6606 ip addr add 10.1.1.2/32 dev B sudo ip netns exec 6606 ip link set B up sudo ip netns exec 6606 ip route add 10.1.1.1/32 dev B现在这 2 个容器就可以相互 ping 通,并成功建立连接。点到点链路不需要子网和子网掩码:测试完毕删除无用的容器:docker rm -f none1 none2
- 4. 对查找到的文件执行操作 有时候需要对查找到的指定文件执行特定的操作:cd /find ./home -name *.txtfind ./home -name *.txt -exec rm {} \;find ./home -name *.txt执行结果如下图:Tips:注意 find ./home -name *.txt -exec rm {} \; 后面的 ; 不要漏掉, -exec 表示执行某个操作,rm 表示删除操作。
- 1.5 进入容器 Docker 提供了一个命令 docker exec ,它在正在运行的容器中运行指定命令,输入以下命令连接到容器内的终端:docker exec -it busybox shdocker exec 进入容器的时候,两个选项不可或缺,即 -i 和 -t ( 合并为 -it )。-t ( --tty ) 表示启用一个伪终端,没有它无法看到 bash 内部的执行结果。
- 1. container 模式 与 host 模式类似,container 模式可以使一个容器共享另一个已存在容器的网络,此时这两个容器共同使用同一网卡、主机名、IP 地址,容器间通讯可直接通过本地回环 lo 接口通讯。新运行一个 busybox 的容器 b1,设定它共享已存在的容器 b0 的网络:docker run -d -t --network container:b0 --name b1 busyboxTips:端口转发设定以已存在的容器为准,出于安全和权限控制的角度,container 模式下运行的容器设定端口转发不生效。查看 b0,b1 的网络配置,验证两者的网络配置是否相同:docker exec b0 ifconfigdocker exec b1 ifconfig此时的网络拓扑图如下:container 网络拓扑不再使用的容器记得删除掉,释放资源和空间docker rm -f b0 b1nginx 镜像自带的网络命令非常少,查看网络不方便,而 busybox 的网络命令比较齐全,使用 container 模式,可以快速解决这个问题。我们新运行一个名为 n0 的 nginx 容器,再将它的网络共享给 busybox 容器 n0-net:docker run -d -t --name n0 nginxdocker run -d -t --network container:n0 --name n0-net busybox使用 n0-net 容器,执行 docker exec n0-net ip a 进行网络状态查看自身网络信息,也就是 nginx 的网络信息执行如下命令,通过 localhost 访问 n0 的 web 服务,说明通过 container 模式下,共享的网络中的容器能够使用 lo 访问其他容器的服务。docker exec n0-net telnet localhost 80# 在交互中输入# GET /#不再使用的容器记得删除掉,释放资源和空间:docker rm -f n0 n0-net
- 3. find 简介:顾名思义,就是用来在系统中查找文件的工具,可以指定一个基础起始目录,根据不同的选项查找不同的文件。语法:find path -option [ -print ] [ -exec -ok command ] {} \;原理:find 根据option在指定的系统路径中查找文件,如果查找到与对应的exec命令,则执行对应的command。print: find 命令将匹配的文件输出到标准输出;exec: find 命令对匹配的文件执行该参数所给出的 shell 命令。相应命令的形式为 ‘command’ {} ;,注意 {} 和 \;之间的空格;ok: 和 - exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的 shell 命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行;选项说明:- -name filename #查找名为 filename 的文件- -perm #按执行权限来查找- -user username #按文件属主来查找- -group groupname #按组来查找- -mtime -n +n #按文件更改时间来查找文件,-n 指 n 天以内,+n 指 n 天以前- -atime -n +n #按文件访问时间来查 GIN: 0px">- -ctime -n +n #按文件创建时间来查找文件,-n 指 n 天以内,+n 指 n 天以前- -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件- -size n [c] #查长度为 n 块 [或 n 字节] 的文件- -depth #使查找在进入子目录前先行查找完本目录- -prune #通常和 -path 一起使用,用于将特定目录排除在搜索条件之外。过滤条件写在其他条件前面。在此我们对命令支持的选项全部展开详解,根据日常经验结合实际案例列举最常用的选项进行说明:实例:在当前目录寻找文件名称以.txt结尾的文件并打印出来[root@master ~]# find ~ -name "*.txt" -print /root/kubesphere-all-advanced-2.0.2/scripts/os/requirements.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/storages/NFS-Server/files/nfs-server-provisioner/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/ks-devops/jenkins/files/jenkins/jenkins-update-center/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/ks-devops/harbor/files/harbor/harbor/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/metrics-server/files/metrics-server/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/openpitrix/files/openpitrix/kubernetes/password.txt查找 /usr/bin 目录下大于 10M 的文件[root@master ~]# find /usr/bin -size +10000k -exec ls -ld {} \; -rwxr-xr-x. 1 root root 13606800 Jul 10 2018 /usr/bin/ceph-dencoder-rwxr-xr-x. 1 root root 15863688 Jul 10 2018 /usr/bin/ceph-objectstore-tool-rwxr-xr-x. 1 root root 15589080 Jul 10 2018 /usr/bin/ceph-osd-rwxr-xr-x. 1 root root 33073928 Feb 10 2019 /usr/bin/docker-rwxr-xr-x. 1 root root 38088856 Feb 10 2019 /usr/bin/docker-containerd-rwxr-xr-x. 1 root root 68608416 Feb 10 2019 /usr/bin/dockerd-rwxr-xr-x. 1 root root 20895160 Feb 10 2019 /usr/bin/docker-containerd-ctr-rwxr-xr-x. 1 root root 10785264 Jul 10 2018 /usr/bin/ceph-mon查找当前目录下权限为 777 的文件[root@master ~]# find . -perm 777 -print ./.helm/repository/cache/local-index.yaml./kubesphere-all-v2.1.0/k8s/extra_playbooks/inventory./kubesphere-all-v2.1.0/k8s/extra_playbooks/roles./kubesphere-all-v2.1.0/k8s/contrib/terraform/openstack/hosts
- 2.2 Macvlan 网络 macvlan 是 Linux 的内核模块,是一种网卡虚拟化技术,功能是允许在同一个物理网卡上虚拟出多个网卡,通过不同的MAC地址在数据链路层进行网络数据的转发,一块网卡上配置多个 MAC 地址,每个interface 可以配置自己的 IP。Docker 的 macvlan 网络使用了 macvlan 驱动。 在物理网络拓扑结构上看,每张虚拟网卡都是一个单独的网口。我们需要两台装好 Docker 服务的 Linux 虚拟机,并且虚拟机的网络要互通。创建 macvlan 网络,在两个节点上都进行此操作:docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth1 -o macvlan_mode=bridge macvlan_net macvlan 是 kernel 的模块名;192.168.2.0/24是宿主机所在网络的网段;192.168.2.1是网关;eth1 是 Docker 宿主机(两台虚拟机)接入192.168.1.0/24 的物理网口。创建容器并指定 IP:容器b1:docker run -it -d --net macvlan_net --ip=192.168.1.101 --name b1 busybox容器b2:docker run -it -d --net macvlan_net --ip=192.168.1.102 --name b2 busybox测试容器通信容器b1:docker exec -it b1 ping 192.168.1.102容器b2:docker exec -it b2 ping 192.168.1.101
exec相关搜索
-
e preventdefault
e4a
each
each的用法
easter
easter day
easyui
easyui 官网
echarts
eclipse
eclipse 64位下载
eclipse android
eclipse tomcat
eclipse 教程
eclipse 快捷键
eclipseadt
eclipse安装教程
eclipse插件
eclipse插件下载
eclipse教程