【阿里Emr源码】【天空西游源码】【ios源码检查】crond 源码

1.私有化代码仓库Gitlab的落地与应用(一)
2.Linux开机启动chkconfig命令详解

crond 源码

私有化代码仓库Gitlab的落地与应用(一)

       前段时间,我接到任务:尝试搭建一个私有化的代码仓库给前端团队使用。之前我用Docker搭建过一个Gitlab,但使用过程中遇到了很多问题,维护起来也比较复杂,所以我决定按照传统方法重新搭建。阿里Emr源码到目前为止,服务已经平稳运行了数月。本文主要记录《私有化代码仓库Gitlab的落地与应用》系列(一):Gitlab传统搭建方式及后台维护,内容主要分为以下几个部分:

       一、Gitlab简介

       GitLab是一个由GitLabInc.开发的开源应用程序,使用Ruby on Rail开发,主要用于实现一个自托管的Git项目仓库。用户可以通过web界面访问公开或私人项目。它使用Git作为代码管理工具,并在此基础上搭建web服务。GitLab的功能与GitHub类似,包括浏览源代码、管理缺陷和注释,以及管理团队对仓库的天空西游源码访问。GitLab专门为Unix操作系统开发,不能在Windows操作系统上运行,因此需要在Linux虚拟机或Docker上安装。GitLab分为社区版(Community Edition)和企业版(Enterprise Edition)。

       二、Gitlab搭建步骤

       1. 安装依赖

       2. 下载镜像文件并上传至服务器

       国内镜像地址:mirrors.tuna.tsinghua.edu.cn...

       3. 安装Gitlab

       4. 配置Gitlab

       编辑配置文件:

       主要涉及两处改动:

       5. 启动Gitlab

       6. 访问Gitlab

       ..1.:

       三、常见问题及解决

       1. 前端页面访问出现

       出现可能有以下原因:

       通过后台运行日志,排查如果是因为端口被占用引起的,可以按照上述修改配置文件方法,将配置文件中的端口号修改即可,修改后需要按照第4步重新加载配置文件、重启服务。更多配置信息,可以在 /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 中进行查看。

       四、Gitlab配置信息及常用操作命令

       1. 常见配置

       默认安装的gitlab,主要有四个目录:

       ◆ /opt/gitlab/ # 主目录

       ◆ /etc/gitlab/ # 放置配置文件

       ◆ /var/opt/gitlab/ # 各个组件

       ◆ /var/log/gitlab/ # 放置日志文件

       2. 常用命令

       ◆ gitlab-ctl start # 启动所有 gitlab 组件;

       ◆ gitlab-ctl stop # 停止所有 gitlab 组件;

       ◆ gitlab-ctl restart # 重启所有 gitlab 组件;

       ◆ gitlab-ctl status # 查看服务状态;

       ◆ vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;

       ◆ gitlab-ctl reconfigure # 重新编译gitlab配置;

       ◆ gitlab-ctl tail # 查看日志;

       ◆ gitlab-ctl help # 查看相关的帮助

       五、代码仓库数据迁移

       1. 旧服务器数据手动备份

       先停掉gitlab,然后执行备份命令

       生成的ios源码检查备份文件会存在/var/opt/backups/目录下,生成的文件名如____.0.6_gitlab_backup.tar,其中.0.6是当前gitlab的版本号,恢复时使用的gitlab必须是同样的版本号,否则没法进行恢复。该文件里面包含了所有user、group、git repository数据。

       2. 新服务器上恢复数据

       将备份文件复制到新服务器的/var/opt/backups/目录下,停掉gitlab的puma、sidekiq两个服务,然后执行恢复操作

       特别注意:

       六、代码仓库自动备份方式一:使用gitlab配置文件设置自动备份

       1. 编辑 /etc/gitlab/gitlab.rb文件,找到以下内容并按照如下配置:

       2. 更新配置

       方式二:使用Linux系统crondtab服务自动备份

       1. 配置定时任务:crontab -e

       查看定时任务:crontab -l

       0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 表示每天凌晨两点执行备份命令

       设置cron服务开机自启:systemctl enable crond.service

       修改后重启cron服务:systemctl restart crond

       tips:

       2. 自动上传gitlab的备份文件到另一台服务器

       1)设置两台服务器免密登录

       2)编写自动上传备份文件shell脚本:gitlab-upload.sh,内容如下:

       编写完成后要对文件赋予执行权限:chmod +x gitlab-upload.sh

       3)设置crondtab定时任务

       执行crondtab -e命令,设置为每天凌晨三点执行远程传输备份文件任务,内容如下,

       保存后要重载crond服务:systemctl reload crond.service

       七、小结

       总的来说,Gitlab的u校园源码搭建过程比一般软件的搭建要繁琐,另外像数据自动备份、数据迁移所用到的Linux技能也较多,可以按需配置和操作。最后,总结一下本次用到的Linux技能:

Linux开机启动chkconfig命令详解

       chkconfig

       chkconfig在命令行操作时会经常用到。它可以方便地设置和查询不同运行级上的系统服务。这个可要好好掌握,用熟练之后,就可以轻轻松松的管理好你的启动服务了。

         注:谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

chkconfig 语法:

       chkconfig       [--add]      [--del]     [--list]      [系统服务]

         chkconfig       [--level/levels]      [等级代号]      [系统服务]      [on/off/reset]

       语法解释 :

       chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启 动。如果是,返回true,否则返回false。如果在服务名后面指定 了on,ocr算法源码off或者reset,那么chkconfi 会改变指定服务的启动信息。on 和 off 分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on 和 off 开关,系统默认只对运行级3,4,5有效, 但是reset可以对所有运行级有效。

         - -level选项可以指定要查看的运行级而不一定是当前运行级。

         需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启 动的服务,也不会再次去停止已经停止的服务。

         chkconfig     – -list :显示所有运行级系统服务的运行状态信息(on或off)。 如果指定了name,那么只显示指定的服务在不同运行级的状态。

         chkconfig     – -add    name:增加一项新的服务。chkconfig确保每个运 行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。

         chkconfig     – -del    name:删除服务,并把相关符号连接从/etc/rc[0-6].d删 除。

         chkconfig     [--level|levels]     [运行级]    系统服务     [on|off|reset]:设置某一服务 在指定的运行级是被启动,停止还是重置。

         例如,要在3,4,5运行级停止nfs服务,则命令如下:

       chkconfig   --level      nfs   off

       运行级文件:

       每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行 或者更多行的注释。

       第一行告诉chkconfig缺省启动的运行级以及启动 和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代 替运行级。

       第二行对服务进行描述,可以用/ 跨行注释。

       例如,random.init包含三行:

       # chkconfig:

         # description: Saves and restores system entropy pool for /

         # higher quality random number generation.

附加介绍一下Linux系统的运行级的概念:

       Linux OS 将操作 环境分为以下7个等级,即

         0:关机

         1:单用户模式(单用户、无网络)

         2:无网络支持的多用户模式(多用户、无网络)

         3:有网络支持的多用户模式(多用户、有网络)

         4:保留,未使用

         5:有网络支持有X-Window支持的多用户模式(多用户、有网络、X-Window界面)

         6:重新引导系统,即重启

       Linux中有多种运行级,常见的就是多用户的2,3,4,5 ,很 多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假 设你要维护系统进入单用户状态,那 么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K和S开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服 务。

范例:

       1.查看在 各种不同的执行等级中,各项服务的状况:

       复制代码

         

       代码如下:

       $chkconfig --list

       2.列出系统服务vsftpd在各个执行等级的启动情况:

       复制代码

         

       代码如下:

       $chkconfig --list vsftpd

       3.在执行等级3,5时,关闭vsftpd系统服务:

       复制代码

         

       代码如下:

       $chkconfig --level vsftpd off

       4.在执行等级2,3,5时,开启 vsftpd系统服务:

       复制代码

         

       代码如下:

       $chkconfig --level vsftpd on

       4.1.在执行等级2,3,5时,重启vsftpd系统服务:

       复制代码

         

       代码如下:

       chkconfig --level vsftpd restart

       5.关闭一些自己不需要的服务:

       如果没有打印机:

       复制代码

         

       代码如下:

       $chkconfig --level cups off

       如果没有局域网:

       复制代码

         

       代码如下:

       $chkconfig --level smb off

       如果不需要远程用户登录的:

       复制代码

         

       代码如下:

       $chkconfig --level sshd off

       如果不需要定时任务的:

       复制代码

         

       代码如下:

       $chkconfig --level crond off

       如果不需要添加新硬件的:

       复制代码

         

       代码如下:

       $chkconfig --level kudzu off

       查看特定系统服务的进程状态,如httpd:

       复制代码

         

       代码如下:

       $chkconfig --list | grep httpd

1、如何增加一个服务?

       首先,服务脚本必须存放在/etc/ini.d/目录下;

         其次,需要用chkconfig ––add servicename来在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了。

         最后,你就可以上面教的方法修改服务的默认启动等级了。

2、Linux下如何自动启动MySQL ?

       首先确保/etc/rc.d/init.d/mysqld 存在,若用 service mysqld start 能够正常启动,表示服务存在

         (注意:如果是rpm形式安装,相应服务会自动在/etc/rc.d/init.d目录注册的)。

         运行命令:

       复制代码

         

       代码如下:

       chkconfig --add mysqld

       运行命令:

       复制代码

         

       代码如下:

       chkconfig --level mysqld on

重启即可

       如何是源码安装,如何让软件开机启动,以Apache为例?

       在linux下安装了apache 服务(通过下载二进制文件经济编译安装、而非rpm包)、apache 服务启动命令:

         /server/apache/bin/apachectl start  。让apache服务运行在运行级别3下面。  命令如下:

       复制代码

         

       代码如下:

       touch /etc/rc.d/init.d/apache

         vi /etc/rc.d/init.d/apache

         chown -R root /etc/rc.d/init.d/apache

         chmod /etc/rc.d/init.d/apache

         ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/Sapache #S 是start的简写、代表启动、K是kill的简写、代表关闭。数字代表启动的顺序。

apache的内容:

       复制代码

         

       代码如下:

       #!/bin/bash

         #Start httpd service

         /server/apache/bin/apachectl start

       至此 apache服务就可以在运行级别3下 随机自动启动了。

       (注意:当创建完 /etc/rc.d/init.d/apache 文件后,其实可以结合 chkconfig 对启动服务进行相应的调整的。)

       另外,也可把启动命令 /server/apache/bin/apachectl start 直接写入 /etc/rc.d/rc.local 文件中,达到开启启动的目的!

更多内容请点击【娱乐】专栏

精彩资讯