2021/02/19

为Debian 8 Jessie续“命”

Debian 7 Wheezy 是我的第一个生产环境的Linux发行版,后来到了目前的公司,新部署了Jessie,因为有LTS又懒得重新搬应用,所以一直用到现在,虽然去年6月LTS也停止提供支持了,还是没下定决心要部署新版本,终于CVE-2021-3156爆出后就不得不考虑了。


 在网上逛了一圈,发现居然有一家叫Freexian的法国公司提供Debian 8的扩展LTS服务,太棒了,又为懒人节省了时间,具体步骤请直接参照How to use Extended LTS,内容非常详尽,我就不赘述了。

当然,因为这是一家Mini公司,网站的流量费用估计占了不小开支,建议仅小的安装包从他们的服务器上更新,如果你的本地有多台Debian 8的话,建议使用镜像缓存。大家互相理解,才能使开源软件继续发展和壮大。

2021/02/09

SVN提交文件失败解决一例

 一个文件要通过svn提交到服务器,提示“No Lock Tokens Available”,导致提交失败。

网上提供了很多方案,最后找了一个比较简单粗暴的,通过命令行进入文件对应的目录,执行:

svn lock --force 文件名

提示

文件名 locked by user 用户名

这样再去commit就OK了。

ps: 我是在Ubuntu 20.04上执行的,其他平台未尝试。

2021/02/01

Tiptop ERP 给程序增加重要信息提醒

 一些程序由于其特殊性,需要在特定条件下给用户以提醒,避免不当使用。


如下是我的范例,供参考。

思路:在系统重要资料修改记录档(azo_file)中增加一条记录用于辨识是否提醒用户,可以根据移动日期azo03跟运行程序的日期对比来决定是否再次提醒,再根据cl_prompt()返回的「是」或「否」来决定下次是否提醒。

简略步骤 :

1. 检查azo_file的函数

FUNCTION i100_chk_azo()

 DEFINE  l_date     LIKE  type_file.dat

   LET l_date = g_today - 30
   LET g_i = 0

   SELECT COUNT(*) INTO g_i
     FROM azo_file
    WHERE azo01 = g_prog
      AND azo02 = g_user
      AND azo03 >= l_date
      AND azo06 = 'DO NOT REMIND IN 30 DAYS.'

   RETURN g_i
END FUNCTION

 2. 在程序加载时调用

   IF i100_chk_azo() THEN
      #有「最近30天不提醒」记录
   ELSE
      LET g_msg = '这个程序产出的结果有很多坑,使用时要特别注意。\n\n最近30天还要提醒吗?'
      #此处也可将提醒文字写入ze_file,再用cl_getmsg(p_code, p_lang)调用。
      IF cl_prompt(20,20,g_msg) THEN
         #下次继续提醒
      ELSE
         INSERT INTO azo_file VALUES (g_prog, g_user, g_today, g_time, '', 'DO NOT REMIND IN 30 DAYS.', g_plant, g_legal)
         IF SQLCA.sqlcode OR SQLCA.sqlerrd[3] = 0 THEN
            CALL cl_err('insert azo', SQLCA.sqlcode, 1)
            EXIT PROGRAM
         END IF
      END IF
   END IF

TIPTOP ERP服务器硬盘空间被塞满

 AP服务器的空间不够用了,但是这里除了/u1/out下的临时文件,不存其他文件啊。况且这次是根目录/满了。

 

用du -h --max-depth=1逐层目录查看,才知道是apache的日志把空间占了。位置在/usr/local/apache2/logs,短期的办法当然是直接删除文件了。

长期看要么写个脚本,把最近xx天的旧文件清除,要么直接设置apache的参数,不要记录日志。

2021/01/13

Tiptop结算成本费用结转相关程序

 成本结算经常用到的程序,在此做个笔记吧。

程序代号 分录底稿单号 程序目的

axcq310 1-YYYYMM9999 制费分摊

axct320 A100-YYYYMM9999 工单发料结转

axct321 B100-YYYYMM9999 工单入库结转

axct322 C100-YYYYMM9999 销货成本结转

axct323 D100-YYYYMM9999 盘盈亏结转

axct324 E100-YYYYMM9999 杂项进出结转

axct325 F100-YYYYMM9999 杂项进出差异结转


2021/01/02

局域网内IPv6地址转换为IPv4地址的方法


以下方法适用于Windows。

  1. ping -a [ipv6 address]取得该地址对应的电脑名称;
  2. ping [电脑名称]得到其IPv4地址。

这个方法使用了ping命令的-a参数,其作用是将地址解析成主机名。