R&Dサーバーのインストール

ゴースト包括的なデータのバックアップを行うには、特に、サーバプロセスが実際にエネルギーの消費で再インストールし、人生の幽霊と結合されたデータの復旧ゴーストカタツムリの速度は、実際には最初の問題はソフトウェア例外が発生し、人々は本当に痛いですああ。さて、それからのデータをバックアップすることをお勧め使用するImageXにすることができ、それについて考える以上はImageXで直接マウントし、私に連続回復プロセスああを救いました。振り返ってみると、ゴーストを選択する唯一の理由は、次のようになります。包括的なバックアップ、あなたは全体の所要時間を復元することができます。しかし、これはここでのポイントではありません。ここでは主にサービスのインストール時、自動ビルドスクリプトについてです。もちろん、ビルドスクリプトの方法を使用して、実際に直接手動操作として良いとして、しかし、場合にあなたも再びそれを行うには、第二又は第二を必要としないかもしれません。もちろん人間の肉のため、プログラマーの方法でなく、軽蔑する傾向があります。

1.組織体制

次のように事業部制になった会社は、おそらく会社が構成されています。   基本設計SVNは、各部門がディレクトリの下にあるSVNリポジトリを、持っていることで、HW / FPGA / FW / SWは 、 異なるエンジニアがアクセスを許可されています。

2.作成し、ユーザーとグループ

ユーザーは、あなたが根本的な原因の性質を検索するに応じて、分割グループを作成する必要がある部門に属し、VBAでHW / FPGA / FW / SWのユーザー・グループに細分化、コマンド「ネットユーザー」を持つユーザーを作成し、Excelを使用してExcelからのコマンドスクリプトを生成します次のように、生成します:

Sub CreateScript()
    Dim row As Integer, i As Integer
    Dim tsUsr As TextStream, tsSmtp As TextStream
    Dim usr As String, grp As String, cmt As String
    Dim outFolder As String
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    outFolder = "D:\BYHX\Server\"
    Set tsUsr = fso.OpenTextFile(outFolder & "0.servadmin.cmd", ForWriting, True)
    Set tsSmtp = fso.OpenTextFile(outFolder & "0.sendmail.ps1", ForWriting, True)
    
    ' PowerShell,需要先执行以下的语句,才能执行ps1脚本
    tsSmtp.WriteLine "# Execute below command first, then ps1 script will allowed."
    tsSmtp.WriteLine "# Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser"
    
    ' 创建事业部和大的用户性质用户组
    For row = 2 To 18
        grp = Range("L" & row)
        If Left(grp, 2) <> "RD" Then grp = "BU-" & grp
        tsUsr.WriteLine "net localgroup " & grp & " /add /comment:""" & Range("M" & row) & """"
    Next row
    
    ' 创建事业部下研发分类用户组,以及列出同类研发事业部组列表
    For row = 2 To 13
        grp = Range("L" & row)
        cmt = Range("M" & row)
        If Left(grp, 2) <> "RD" Then grp = "BU-" & grp
        tsUsr.WriteLine "net localgroup " & grp & "-HW   /add /comment:""" & cmt & " 硬件"""
        tsUsr.WriteLine "net localgroup " & grp & "-FPGA /add /comment:""" & cmt & " FPGA"""
        tsUsr.WriteLine "net localgroup " & grp & "-FW   /add /comment:""" & cmt & " 嵌入"""
        tsUsr.WriteLine "net localgroup " & grp & "-SW   /add /comment:""" & cmt & " 软件"""
    Next row
    
    For row = 2 To 1000
        usr = Trim(Range("A" & row).Text)
        grp = Trim(Range("D" & row).Text)
        ' 行的A列为空,表示处理结束
        If usr = "" Then Exit For
        ' 非RD的,添加BU前缀
        If Left(grp, 2) <> "RD" Then grp = "BU-" & grp
        ' 添加用户
        tsUsr.WriteLine "net user " & usr & " """ & Range("B" & row) & """ /add /active:yes /expires:never /fullname:" & Range("C" & row)
        ' 用户密码永不过期
        tsUsr.WriteLine "wmic useraccount where name='" & usr & "' set passwordexpires=false"
        ' 把用户添加到事业部
        tsUsr.WriteLine "net localgroup " & grp & " " & usr & " /add"
        
        ' 根据研发内容,添加用户到事业部研发组
        If Range("E" & row).Text = "Y" Then tsUsr.WriteLine "net localgroup " & grp & "-HW   " & usr & " /add" & vbCrLf & "net localgroup RD-AllHW   " & usr & " /add"
        If Range("F" & row).Text = "Y" Then tsUsr.WriteLine "net localgroup " & grp & "-FPGA " & usr & " /add" & vbCrLf & "net localgroup RD-AllFPGA " & usr & " /add"
        If Range("G" & row).Text = "Y" Then tsUsr.WriteLine "net localgroup " & grp & "-FW   " & usr & " /add" & vbCrLf & "net localgroup RD-AllFW   " & usr & " /add"
        If Range("H" & row).Text = "Y" Then tsUsr.WriteLine "net localgroup " & grp & "-SW   " & usr & " /add" & vbCrLf & "net localgroup RD-AllSW   " & usr & " /add"
        If Range("I" & row).Text = "Y" Then tsUsr.WriteLine "net localgroup BU-Leader " & usr & " /add"
    Next row
        
    tsUsr.Close
    tsSmtp.Close
    MsgBox "OK"
End Sub

SVNのインストールと設定3

3.1 SVNリポジトリを確立

インストール後、手動で追加読み書きアクセスアカウント管理をデモライブラリを確立し、設定ファイルの認証謄本を考慮して、あなたが必要とするのsvnのフックファイルを準備します。レディー部門だけでなく、オフラインSVN構成として、SVNリポジトリを生成するためのバッチコマンドを使用して、ファイルのリスト「1.svn-repo.txt」、各ライン部門の名前のみ(あなたはエクセルからコピーすることができます)。

for /f %%i in (1.svn-repo.txt) do (
svnadmin create E:\Repositories\%%i
mkdir %%i\conf\
mkdir %%i\hooks\
copy /y VisualSVN-WinAuthz.ini %%i\conf\
copy /y pre-commit.cmd %%i\hooks\
)

3.2ディレクトリと構成を作成します

各ライブラリ用のディレクトリを作成し、SVNコマンド、アカウント管理を使用します。

for /f %%i in (1.svn-repo.txt) do (
svn mkdir https://BYHX-MasterServ:8443/svn/%%i/hw -m "Create hardware folder"
svn mkdir https://BYHX-MasterServ:8443/svn/%%i/fpga -m "Create FPGA folder"
svn mkdir https://BYHX-MasterServ:8443/svn/%%i/fw -m "Create firmware folder"
svn mkdir https://BYHX-MasterServ:8443/svn/%%i/sw -m "Create software folder"
)

単一SIDに似た「PsGetsid」ユーザーのSID情報ファイルを取得するためのツール、情報と同様のサイクルでは、

SID for my-co-server\whom:
S-1-5-21-316025195-1075053894-3005689260-1012

シェルスクリプトの使用、SID情報を扱う(なお、UNIX形式として最初の変換「sidresult.txt」)

cat sidresult.txt | egrep "SID\ for|S\-1" | sed -e 'N;s/\n//g' | sed -e 's/^.*\\//g' > sidlist.txt

これに似た処理された情報:

whom:S-1-5-21-316025195-1075053894-3005689260-1012

SID情報テーブルと許可情報を取り扱い、VBA Excelを使用した後:

Function GetSID(sName As String)
    Dim sidFile As TextStream
    Dim outFolder As String
    Dim str As String, s1 As String
    Dim pos As Integer
    
    outFolder = "D:\BYHX\Server\"
    
    Set sidFile = fso.OpenTextFile(outFolder & "sidlist.txt", ForReading)
    Do While Not sidFile.AtEndOfStream
        str = sidFile.ReadLine
        pos = InStr(str, ":")
        s1 = Left(str, pos - 1)
        If s1 = sName Then
            GetSID = mid(str, pos + 1)
            Exit Do
        End If
    Loop
End Function

Sub ModiPrivilege()
    Dim row As Integer, i As Integer
    Dim outFolder As String
    Dim authFile As TextStream
    Dim str As String, s1 As String
    Dim usr As String, grp As String
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    outFolder = "D:\BYHX\Server\"

    ' 给负责人添加库的完全权限
    For row = 2 To 1000
        usr = Trim(Range("A" & row).Text)
        grp = Trim(Range("D" & row).Text)
        ' 行的A列为空,表示处理结束
        If usr = "" Then Exit For
        ' 非RD的,添加BU前缀
        If Left(grp, 2) <> "RD" Then grp = "BU-" & grp
        
        If Range("I" & row).Text = "Y" Then
            str = outFolder & grp & "\conf\VisualSVN-WinAuthz.ini"
            Set authFile = fso.OpenTextFile(str, ForAppending)
            authFile.WriteLine GetSID(usr) & "=rw"
            authFile.Close
        End If
    Next row

    ' 事业部下研发分类用户组,设置权限
    For row = 2 To 13
        grp = Range("L" & row)
        If Left(grp, 2) <> "RD" Then grp = "BU-" & grp
        
        Set authFile = fso.OpenTextFile(outFolder & grp & "\conf\VisualSVN-WinAuthz.ini", ForAppending)
        authFile.WriteLine vbCrLf & "[/hw]"
        authFile.WriteLine GetSID(grp & "-HW") & "=rw"
        authFile.WriteLine vbCrLf & "[/fpga]"
        authFile.WriteLine GetSID(grp & "-FPGA") & "=rw"
        authFile.WriteLine vbCrLf & "[/fw]"
        authFile.WriteLine GetSID(grp & "-FW") & "=rw"
        authFile.WriteLine vbCrLf & "[/sw]"
        authFile.WriteLine GetSID(grp & "-SW") & "=rw"
        authFile.Close
    Next row
    
    MsgBox "OK"
End Sub

SVNリポジトリディレクトリにコピーSVNオフライン設定ファイルは、サービスSVNを再起動し、SVNの設定は完了です。

4.送信する電子メール通知

あなたは私の同僚に通知するために、各アカウントのパスワードが必要です。テキストファイルにコピーされたExcelのユーザー名とパスワードの2つの列。UNIX形式に。次のようにメールスクリプトを送信します。

#!/usr/bin/bash
input="mailaccount.txt"
while IFS= read -r line
do
	_usr=`echo -n $line | gawk '{printf "%s",$1}'`
	_pwd=`echo -n $line | gawk '{printf "%s",$2}' | ./htmlenc.exe`
	cat SwithMailSettings.xml | sed -e "s/__to_person__/$_usr/g" -e "s/__password__/$_pwd/g" > account.xml
	./SwithMail.exe /s /x account.xml
done < "$input"

基づく「SwithMail」を選択してメールのコマンドラインツール、簡単に電子メールを送信するための7つのコマンドラインユーティリティ SMTPが使用を推奨。もちろん、あなたはまた、PowerShellが少し面倒です使用することができます。

公開された35元の記事 ウォンの賞賛3 ビュー70000 +

おすすめ

転載: blog.csdn.net/dabbler_zhu/article/details/104212234