TiMa

作者: 天马流星

  • Gitlab Docker部署gitaly启动失败问题

    在NAS上部署docker版gitlab,发现其他都正常,创建群组也正常,但是创建项目就会报500错误,

    Request ID: 01JXKP6NTCNM201KEGMSDHFJ2J

    查运行状态,gitaly未运行,有大量的gitaly错误日志,错误信息大致如下:

    {"error":"open /var/opt/gitlab/gitaly/gitaly.pid: permission denied","level":"fatal","msg":"find process","pid":3499,"time":"2025-06-13T14:56:03.048Z","wrapper":3499}
    
    unclean Gitaly shutdown: creating Git command factory: setting up Git execution environment: constructing Git environment: Checking bundled Git binary "gitaly-git-v2.49": permission denied
    {“level”:“warning”,“msg”:“The current configurations will cause Gitaly to fail to start up in future versions. Please run ‘gitaly configuration validate \u003c /var/opt/gitlab/gitaly/config.toml’ and fix the errors that are printed.”,“pid”:46135,“time”:“2025-06-13T14:59:34.981Z”}
    FAIL: 14:connections to all backends failing; last error: UNKNOWN: unix:/var/opt/gitlab/gitaly/gitaly.socket: No such file or directory

    换了好几个版本都是如此,经过大量查询和AI解释,都只解释了一半,主要与 GitLab 容器内 gitaly-git 二进制文件的权限或配置异常有关,也没有给准确的建议。这个问题的原因在于/var是一个受noexec保护的路径,禁止运行gitaly服务程序,而gitaly的运行目录正好位于:/var/opt/gitlab/gitaly/

    即便做了目录持久化挂载,给了读写权限,给了git用户/组权限,也会受目录保护影响,解决方案有两个:

    (更多…)
  • Centos常用命令1

    开发工具安装 yum groupinstall “Development tools”

     
     

    查看文件夹占用空间:

    du -h –max-depth=1

     
     

    apt-get install ubuntu-developer-tools-center

    yum install bash-completion 命令补全

     
     

    更新时间

    timedatectl

    设置时区

    timedatectl set-timezone Asia/Shanghai

    是否NTP服务器同步

    timedatectl set-ntp yes

    yum -y install ntp ntpdate

    设置系统时间与网络时间同步

    ntpdate cn.pool.ntp.org

     
     

    删除30天以前的log文件

    find /opt/soft/log/ -mtime +30 -name “*.log” -exec rm -rf {} \;

     
     

    shell脚本测试:

    测试脚本: sh -n ***.sh 

    检验脚本: sh -vx ***.sh

  • Gitlab 相关命令

    # 重新应用gitlab的配置

    gitlab-ctl reconfigure

     

    # 重启gitlab服务

    gitlab-ctl restart

     

    # 查看gitlab运行状态

    gitlab-ctl status

     

    #停止gitlab服务

    gitlab-ctl stop

     

    # 查看gitlab运行日志

    gitlab-ctl tail

     

    # 停止相关数据连接服务

    gitlab-ctl stop unicorn

    gitlab-ctl stop sideki

     

    创建备份:gitlab-rake gitlab:backup:create

     
     

    现在我们要从1522918586_2018_04_05_10.6.2这个备份编号中,恢复数据,命令如下:

    gitlab-rake gitlab:backup:restore BACKUP=1522918586_2018_04_05_10.6.2

  • 服务器利用LVM分区挂载磁盘全记录

    服务器利用LVM分区挂载磁盘全记录

    1、进入服务器后,首先利用fdisk -l来观察磁盘信息,可以看出红线标注处,有两块硬盘信息,分别是40G和300G

    2、同时你也可以观察到分区信息,40G的硬盘已经分了一个区vda1,大小(Blocks)是41940992,分区类型83,linux分区类型。而vdb磁盘下并没有任何分区信息,证明还没有分区。

    3、因为我们要分的是第二块300G的硬盘,所以我们输入 fdisk /dev/vdb,出来如下界面的时候,就可以继续输入命令进行操作了

     4、可以通过m命令来查看分区的命令都有那些

    5、输入 n 选择创建一个分区

    6、连续输入三次回车,都使用默认值,来创建一个主分区

    7、这样分区就分好了,下边继续操作,输入 t 修改创建好的分区格式,显示已有一个分区被选择

    8、输入 8e 就把分区格式修改为了 Linux LVM 格式

    9、最后输入 w 保存修改即完成了分区的过程

    10、我们再来用 fdisk -l 查看下磁盘信息,可以看到硬盘vdb下已经多了一个分区vdb1了,并且分区格式是8e Linux LVM

     11、首先检查LVM安装了没有,使用 yum list installed | grep lvm 看安装了没有,如果没有就用 yum install lvm2 命令装一下

    12、下边开始开始使用LVM来进行动态卷管理了,使用 pvcreate 来创建物理卷,创建后使用pvdisplay  来查看创建的物理卷信息

    pvcreate /dev/sdb1

    pvcreate /dev/vdb1

    13、使用 vgcreate 来创建卷组,创建后使用vgdisplay来查看创建的卷组信息

    vgcreate vgsdb /dev/sdb1

    vgcreate vgvdb /dev/vdb1

     14、使用 lvcreate 来创建逻辑卷(文中命令是把VG空间全部给于lv1逻辑卷),创建后使用lvdisplay来查看创建的逻辑卷信息

    lvcreate -l 100%free -n lvsdb vgsdb

    lvcreate -l 100%free -n lvvdb vgvdb

     15、再来使用 fdisk -l 命令来看一个分区信息,可以出到lv1已经被显示出来了

    16、使用 mkfs.ext4 来格式化 lv1

    mkfs.ext4 /dev/vgsdb/lvsdb

    mkfs.xfs /dev/vgsdb/lvsdb

    mkfs.xfs /dev/vgvdb/lvvdb

     16、先建立一个目录,然后将该lv1挂载至该目录下,利用df -T -h命令,我们可以看出该lv1已经挂载好并且可以访问了

    mount /dev/vgsdb/lvsdb /

    mount -t xfs /dev/vgsdb/lvsdb /

    mount -t xfs /dev/vgvdb/lvvdb /

    17、使用 vim /etc/fstab  来设置开机自动挂载

    18、输入 /dev/vgsdb/lvsdb                    /apps                   ext4    defaults        0 0

    /dev/vgsdb/lvsdb /opt xfs defaults 0 0

    /dev/vgvdb/lvvdb /opt xfs defaults 0 0

    19、重启机器后,可以看到lv1分区已经顺利挂载到了apps目录下,打完收功,大功告成!

  • Linux下buff/cache占用过大处理

    echo 1 > /proc/sys/vm/drop_caches

    echo 2 > /proc/sys/vm/drop_caches

    echo 3 > /proc/sys/vm/drop_caches

    sync && echo 1 > /proc/sys/vm/drop_caches && echo 2 > /proc/sys/vm/drop_caches && echo 3 > /proc/sys/vm/drop_caches

  • Skype 网页html代码code

    <a href="skype:<username>?<action>"> Link Text</a>
    <a href="skype:example123?chat">Start Chat</a>

    action : userinfo / chat / call / add / voicemail / sendfile

  • B1 禁止删除报表触发器

    create trigger [dbo].[BBKZ] ON [dbo].[OUQR]

    instead of  update

    AS

    DECLARE @FirstTest VARCHAR(1000)

    DECLARE @LastTest VARCHAR(1000)

    SELECT @FirstTest=convert(varchar(1000),QString)  FROM deleted

    SELECT @LastTest= convert(varchar(1000),QString) FROM inserted

    IF @FirstTest IS NOT NULL AND @LastTest =””

    BEGIN

    raiserror(‘  不允许删除报表’,16,8)

    rollback

    END

  • SAP模块释义

    FI(Financial Accounting 财务会计):应收、应付、总帐、固定资产、投资、基金、现金等.

    CO(Controlling 成本控制):利润及成本中心,产品成本、项目会计、获利分析等.

    MM(Material Management 物流管理):采购、库房管理、库存管理、MRP、供应商评价等.

    PP(Production Planning 生产计划):工厂数据、生产计划、MRP、能力计划、成本核算等.

    QM(Quality Management 质量管理):质量计划、质量检测、质量控制、质量文档等.

    WM(Warehouse Management 仓库管理):管理仓库中的存储区和仓位、处理所有的记帐和事务,如收货 ,发货和一般的 转储等、对库存的变动情况进行监测、按仓位进行存储、确保在存储管理系统中的记帐与仓库中的实际库存情况一致、与材料管理系统,产品计划系统,质量管理系统和销售与分销系统的集成.

    SD(Sales and Distribution 销售和分销):销售计划、询价报价、订单管理、D/N、billing等.

    PS(Project System 专案管理):协调和控制专案的各个阶段,直接与采购及控制合作,从报价、设计到批准以及资源管理与结算.

    PM (Plant Maintain 工厂维护):提供对定期维护、检查、耗损维护与服务管理的规划、控制和处理,以确保各操作性系统的可用性.

    HR( Human Resources 人力资源管理) 采用涵盖所有人员管理任务和帮助简化与加速处理的整合式应用程式,为公司提供人力资源规划和管理解决方案