常规问题
关掉docker容器导致安装失败
现象:docker -v 可以看到版本,安装失败
解决方案:启动容器,再执行
sudo systemctl start docker
终端回显日志输出捕获
现象:终端输出信息,使用>或者>>无法获取完整内容
解决方案:
1、多通道重定向到1,再输出文件
xcal-scanner -sc run.conf -uc user.conf -pc project.conf > log.txt
2、需要回显,可以增加tee进行输出文件
xcal-scanner -sc run.conf -uc user.conf -pc project.conf 2>&1 3>&1 | tee log.txt
显示某一目录
现象:需要显示文件是否存在某些文件
解决:使用tree指令
1、例如:tree *ceph* 列出当前目录下带ceph的目录内容;
注意:
a)*ceph* 不包含 ceph*和*ceph
b)*ceph* 不包含 ceph*和*ceph
2、例如:tree -h *ceph* 列出当前目录下带ceph的目录内容,并带上大小。
启动网卡管理器
16.04虚拟机网卡丢失
sudo service network-manager start
18.04虚拟机网卡丢失
首先尝试不用sudo(针对又上角无法看到三个小方块图标):
service network-manager start
以上行不通,再使用以下办法(处理过有图标,ip无法获取的情况):
service network-manager stop
sudo mv /var/lib/NetworkManager/NetworkManager.state /var/lib/NetworkManager/NetworkManager.state.bak
service network-manager start
ssh 失败
C:\Users\sun.lee>ssh shaw@10.10.2.120
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:zCbPr56qCkWACJTnhatdjSqwu0qWm9NhP4zHPlBN7w0.
Please contact your system administrator.
Add correct host key in C:\\Users\\sun.lee/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\sun.lee/.ssh/known_hosts:13
ECDSA host key for 10.10.2.120 has changed and you have requested strict checking.
Host key verification failed.
需要更新host key,执行更新再次登录即可
ssh-keygen -R x.x.x.x
Bazel 升级了gcc编译报错问题
.cach目录的文件找不到依赖的头文件
bazel clean --expunge
sudo: no tty present and no askpass program specified
-
明文密码,写到sh内
echo <password> | sudo -S <cmd>
-
修改为root权限(未验证)
-
使用不提示设置(未验证)
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc3 in position 3015: ordinal not in range(128)
2021-01-29 15:39:51,169 - TRACE - [output] File "xcalbuild.py", line 486, in<module>
2021-01-29 15:39:51,169 - TRACE - [output] File "c:\Python37\lib\encodings\ascii.py", line 26, in decode
2021-01-29 15:39:51,170 - TRACE - [output] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3015: ordinal not in range(128)
2021-01-29 15:39:51,270 - TRACE - subprocess return code: 4294967295
2021-01-29 15:39:51,271 - TRACE - XcalBuildTask Finish with 4294967295
Traceback (most recent call last):
File "xcal-scanner.py", line 369, in <module>
File "xcal-scanner.py", line 330, in main
File "components\XcalTasks.py", line 406, in perform_offline_tasks
File "components\XcalTasks.py", line 179, in run
File "components\XcalTasks.py", line 107, in run
common.XcalException.XcalException: service_name: XcalBuildTask, operation_name:
run, message: XcalBuild exit with error = 4294967295, error_code: TaskErrorNo.E
_XCALBUILD_FAIL
[12464] Failed to execute script xcal-scanner
修改代码解决
make 的几个清理区分
make clean仅仅是清除之前编译的可执行文件及配置文件。
而make distclean要清除所有生成的文件。
Makefile
在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:
make
根据Makefile编译源代码,连接,生成目标文件,可执行文件。
make clean
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
make install
将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。
make dist
产生发布软件包文件(即distribution package)。这个命令将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为发布软件的软件包。
它会在当前目录下生成一个名字类似“PACKAGE-VERSION.tar.gz”的文件。PACKAGE和VERSION,是我们在configure.in中定义的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。
make distcheck
生成发布软件包并对其进行测试检查,以确定发布包的正确性。这个操作将自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,最后提示你软件包已经准备好,可以发布了。
make distclean类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile。
too many open files(打开的文件过多)解决方法
这个错误通常也可以叫做句柄数超出系统限制。
查看当前系统设置的最大句柄数是多少:ulimit -a
- 方法一
增大允许打开的文件数——命令方式:ulimit -n 2048 - 方法二
增大允许打开的文件数——修改系统配置文件vim /etc/security/limits.conf #在最后加入 * soft nofile 4096 * hard nofile 4096
terminal无法打开
-
操作不便,下载了xterm,
-
打开Xterm,执行gnome-terminal
-
结果:
File "/usr/bin/add-apt-repository", line 12, in <module> from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 67, in <module> from gi.repository import Gio File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module> from . import _gi ImportError: cannot import name '_gi' from 'gi' (/usr/lib/python3/dist-packages/gi/__init__.py)
-
进入目录
$ cd /usr/lib/python3/dist-packages/gi
-
拷贝文件
$ sudo cp _gi.cpython-36m-x86_64-linux-gnu.so _gi.cpython-37m-x86_64-linux-gnu.so $ sudo cp _gi_cairo.cpython-36m-x86_64-linux-gnu.so _gi_cairo.cpython-37m-x86_64-linux-gnu.so
-
打开terminal,可以正常打开
扫描信息xvsa-xfa-dummy.v解读
"ss": 1618803404120536, 扫描开始时间,1970年以来的微秒数
"se": 1618804467948815, 扫描结束时间,1970年以来的微秒数
"usr": 265270257, 程序执行在用户态的时间,微秒
"sys": 62013496, 程序执行在内核态的时间,微秒
"rss": 12553332 内存,单位kb
(se - ss) - (usr + sys)是程序没有抢到cpu在等待的时间
扫描工具
cpplint:
1、先安装pip3
2、pip3 install cpplint
3、使用:cpplint {cpp-file}
4、例如:cpplint main.cpp
checkpatch:
1、获取:git clone https://github.com/riboseinc/checkpatch.git
2、使用:./checkpatch/checkpatch.pl --no-tree --max-line-length 120 -f {c-file}
3、例如:./checkpatch/checkpatch.pl --no-tree --max-line-length 120 -f …/…/test/test.c
shellcheck:
1、安装:sudo apt-get install shellcheck
2、使用:shellcheck {shell-file}
3、例如:shellcheck main.sh