最近听同事忽悠说 Ubuntu 的多种优点,突然心血来潮,想把之前用了多年的 WIN 桌面换成 Ubuntu,开始了漫长的折腾之旅,好在有几个同事用 Ubuntu 很久了,有了同事的帮助,切换并不费劲,先来看看安装SecureCRT 遇到的问题,记录下。
问题描述
1.1 下载 securecrt
http://vandyke.com/download/securecrt/
备注:下载并安装都很顺利,接下来想把 WIN 下 SecureCrt 的会话配置文件复制过来。 也就是 Config 目录下的 Sessions 目录,配置文件复制到 Ubuntu 下目录 ~/.vandyke/SecureCRT/Config, 启动 SecureCRT连接时报以下错误。
1.2 报错信息和图片
1 |
THe filewall was not found in the database . |
备注:连接没问题但始终报这个错,这个问题困扰了好久,在网上找了些资料,说在 ~/.vandyke/SecureCRT/Config 目录创建个 FireWalls/ 目录,并在这个目录下创建个 .ini 文件,经测试后无效; 还有资料说是更改 /home/francs/.vandyke/SecureCRT/Config/Sessions/Default.ini 文件的 “Firewall Name” 参数,将其更改为 S:”Firewall Name”=None ,经测试,依然无效; 最后请教了了玩 Ubuntu 比较久的同事, 终于发现了问题,先查看其中一个会话文件的 “Firewall Name” 属性。
1.3 查看会话配置文件
1 |
cat xxx.xx.xx.xx ( 视频下载 ).ini | grep "Fire" |
备注:这里发现 S:”Firewall Name” 的值显示的是乱码,这是由于编码的原因,转换下编码即可。
1.4 查看编码
1 |
francs@francs:~/.vandyke/SecureCRT/Config/Sessions.bk/IDC/game$ file xxx.xxx.xxx.xx ( game_RHCS ).ini |
1.5 转换编码成 utf-8
1 |
francs@francs:~/.vandyke/SecureCRT/Config/Sessions.bk/IDC/game$ enconv xxx.xxx.xxx.xx ( game_RHCS ).ini |
1.6 再次查看
1 |
francs~/.vandyke/SecureCRT/Config/Sessions.bk/IDC/game$ cat xxx.xxx.xxx.xx ( game_RHCS ).ini | grep "Fire" : |
备注:S:”Firewall Name”=无,将其更改成 S:”Firewall Name”=None 后,此错误消失。这个问题终于解决了,但新问题来了,Session目录下有上百个这样的文件,如何批量修改,思考了一会后,结合 find 和 sed 命令 可以搞定,解决方法如下。
批量更改配置文件参数
在批量更改配置文件前,建议先备份下 ~/.vandyke/SecureCRT/Config/Sessions 目录。
2.1 进入 Sessions 目录
1 |
francs@francs:~$ cd ~/.vandyke/SecureCRT/Config/ |
2.2 查看文件编码
1 |
find . -name '*.ini' -type f -exec file '{}' ; |
备注:结果输出为 ISO-8859 text格式。
2.3 批量转换配置文件编码
1 |
find . -name '*.ini' -type f -exec enconv '{}' ; |
2.4 批量更改配置文件 S:”Firewall Name”= 参数
1 |
find . -name '*.ini' -type f -exec sed -i 's/=无/=None/g' '{}' ; |
备注:这条命令能批量更改 Sessions 目录及其子目录下的所有配置文件的 S:”Firewall Name” 属性。sed -i 表示直接替换目标文件。
2.5 更改前的 Firewall Name 参数
1 |
S:"Firewall Name"=无 |
2.6 更改后的 Firewall Name 参数
1 |
S:"Firewall Name"=None |
原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/tech/database/238016.html