很多时候,我们在本地开发过程中程序运行很正常,但是发布到线上之后由于环境的原因,可能会有一些异常.通常我们会通过日志来分析问题,除了日志还有一种常用的调试手段就是:附加进程. VS中的附加进程非常强大,目前提供了9种常用的附加方式. 在当前.Net Core支持跨平台的大背景下,其中Llinux环境和Linux Docker的附加显得尤为重要. 那么我们来看看如何附加到远程服务器中的Docker. 1.必要条件 想附加Linux中的Docker容器,必须安装SSH服务器 sudo apt-get…
This system supports the C.UTF-8 locale which is recommended. You might be able to resolve your issue by exporting the following environment variables: export LC_ALL=C.UTF-8 export LANG=C.UTF-8 root@864a8a8e5157:/home/pyspider# pyspider all Traceback…
一般在部署环境下不会有 Visual Studio 开发工具的,所以需要有 Remote Debugger(远程调试器) 才可以进行远程调试. Remote Debugger 获取 方法一:Visual Studio 的安装目录下查找,我用的 Visual Studio 2017 : C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Remote Debugger 方法二:直接下载 Remote D…
docker psdoker top dc1 # 容器情况# 在运行中的容器内启动新进程docker exec [-d] [-i] [-t] 容器名 [command] [args]docker exec -i -t dc1 /bin/bashctrl+p ctrl+qdocker top dc1 #发现bash的进程运行在dc1中.  …
docker的宿主机是虚拟机下的CentOS 博主最近遇到一种情况,从服务器拷贝了一份数据库在宿主机Mysql服务器上,想要用本地的数据库测试自己的代码正确性,但是项目程序都是靠docker一键部署的,于是必定要在docker容器里访问到本地的数据库.在探索中遇到了问题并得到了解决. 在docker容器里localhost并不是指宿主机的localhost 由此原因,并不能在容器中通过localhost:3306访问到宿主机的mysql docker在运行时就建立了虚拟网卡,并命名为docker…
1.判断一个文件的常见形式为 if [ -f filename ]  #此处有-e和-f的区别 注意: 1)中括号之间的空格: 2)filename最好是绝对路径,在判断远程服务器中文件是否存在时尤为重要,因为集群之间有路径的变化. 2.链接远程服务器 写法为:if [ ssh root@${ip} -f filename ]会报错:[: too many arguments 改为: if [ "ssh root@${ip} -f filename" ]即可. 注意: 1)此处的双引号…
1.下载安装redis 在远程服务器中你想下载的位置执行以下命令来下载redis文件到服务器中 $ wget http://download.redis.io/releases/redis-4.0.9.tar.gz 说明:$是指你的当前目录,不是命令的一部分,wget命令用来下载网上资源,后面的地址是网上资源路径,你可以去redis官网上查找你想下载的redis版本的下载路径 解压文件 $ tar xzf redis-4.0.9.tar.gz 编译文件 $ cd redis-4.0.9 $ ma…
任务: 使用ssh连接到centos7中docker容器 实验步骤: 实验环境搭建,详情请看上一篇. 因为docker中容器的ip通常来说是和真机以及centos7的ip不属于一个网段,因此直接访问是不可通的. 如图,首先用真机ping容器(容器事先安装了常用的软件,具体步骤请看上一篇) 然后用容器ping真机以及外网,发现都可以Ping通(具体原因下篇会讲,因为和任务无关这里先不具体叙述) 3.这里输入以下命令,查看已经有的镜像. docker images 其中第一个是我将初始的镜像安装完常…
1 背景和问题 随着云计算.PaaS平台的普及,虚拟化.容器化等技术的应用,例如Docker等技术,越来越多的服务会部署在云端.通常,我们需要需要获取日志,来进行监控.分析.预测.统计等工作,但是云端的服务不是物理的固定资源,日志获取的难度增加了,以往可以SSH登陆的或者FTP获取的,现在可不那么容易获得,但这又是工程师迫切需要的,最典型的场景便是:上线过程中,一切都在GUI化的PaaS平台点点鼠标完成,但是我们需要结合tail -F.grep等命令来观察日志,判断是否上线成功.当然这是一种情况…
1. 问题背景 在一次新版本功能开发完毕,配合测试的过程中,测试反馈某个XxlJob定时任务一直执行失败,在分析了日志之后,找到了报错的原因: Packet for query is too large (7251422 > 4194304). You can change this value 是因为在程序中做了批量INSERT,而一次插入的数据量太大,超过了MySQL服务器的配置,导致插入失败.所以,我们只需要将这个配置改大一点就行. 2. 解决方案确定 经过搜索,发现决定单次插入数据量的配…