RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-307166

Dmitry Volkov's questions

Martin Hope
Dmitry Volkov
Asked: 2020-03-05 19:58:10 +0000 UTC

选择特定格式的目标目录中的最后一个文件

  • 0

有一个powershell脚本,它从一个目录中选择最后一个文件(即数据库备份),将其复制到本地磁盘(因为备份在网络上的另一台机器上)并将备份恢复到测试数据库。一切正常,但有一点,如果备份以外的文件以某种方式进入源文件夹并且结果是最后一个,则脚本会获取并复制它。一般来说,一切都是合乎逻辑的,我想要我得到什么,但我希望脚本只在备份中选择最后一个,即带有 *.bak 扩展名的文件。这是脚本本身的一个示例。

[CmdletBinding()]
    Param([string]  [Parameter(Mandatory=$true)] $SqlServer=$null,      # SQL Сервер для которого будет исполняться скрипт
                    [Parameter(Mandatory=$true)] $SqlBaseConnect=$null, # База данных к которой будем подклюдчаться       
                    [Parameter(Mandatory=$true)] $SqlBaseRestore=$null, # База данных для которой будет исполняться скрипт
                    [Parameter(Mandatory=$true)] $SqlLogin=$null,       # Логин базы данных
                    [Parameter(Mandatory=$true)] $SqlPassw=$null,       # Пароль базы данных
                    [Parameter(Mandatory=$true)] $destination=$null,    # Каталог назначения
                    [Parameter(Mandatory=$true)] $DiskSource=$null,     # Диск источника
                    [Parameter(Mandatory=$true)] $CatalogSource=$null)  # Каталог источника




#Запуск таймера
  $watch = [System.Diagnostics.Stopwatch]::StartNew()
  $watch.Start() 

#Лог скрипта
  $LogF="RestoreBackupLog.txt"
  if (Test-Path $LogF) {Clear-Content $LogF}
       Add-Content -Path $LogF -Value   "Starting ..." 


# Переприсваиваем переменную источника к виду Путь источника
  $Source=$DiskSource+$CatalogSource

# Проверяем существует ли источник
  $TestPasth = Test-Path $Source
    if ($TestPasth -eq "True") {
                            # Выбираем самый новый файл на источнике.
                              $FileCopy = Get-ChildItem -Path $Source -ErrorAction SilentlyContinue -ErrorVariable ErrVarFile | Sort-Object LastWriteTime | Select-Object -Last 1

                       }
    else {Write-Host Указаный путь не существует
          exit}

# Копируем выбраный фаил 
  Copy-Item -Path "$Source\$FileCopy" -Destination "$destination" -Force -ErrorAction SilentlyContinue -ErrorVariable ErrVar | Out-Null
    $ErrVarStd=$?
    Add-Content -Path $LogF -Value $ErrVar

# Проверяем скопировался ли фаил, если да то запускам востановлние базы
  if ($ErrVarStd -eq "True") {
                            #Подключение к  SQL и выполнение запроса 
                              $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
                              $SqlConnection.ConnectionString = "Server=$SqlServer; Database=$SqlBaseConnect; User ID=$SqlLogin; Password=$SqlPassw;"
                              $SqlConnection.Open()

                              $SqlCmd = $SqlConnection.CreateCommand()
                              $SqlCmd.CommandText =  "Restore database [$SqlBaseRestore]
                                                      FROM DISK = '$destination\$FileCopy'"
                              $objReader = $SqlCmd.ExecuteReader()
                              while ($objReader.read()) {
                              Write-Output $objReader.GetValue(0)
                                                        }
                                $objReader.close()
                            # Удаляем фаил бэкапа из каталога назначения после востановления  
                                Remove-Item $destination\$FileCopy 
                              } 
  else {Write-Host Не удалось скопировать фаил бэкапа
        exit }  


#Остановка таймера
  $watch.Stop() 
  $elapsedtime=$watch.Elapsed
  Write-Host Время выполнения $elapsedtime
  Add-Content -Path $LogF -Value "Время выполнения $elapsedtime"

如果将行更改为

$FileCopy = Get-ChildItem -Path $Source -Include *.bak -ErrorAction SilentlyContinue -ErrorVariable ErrVarFile | Sort-Object LastWriteTime | Select-Object -Last 1

然后脚本停止工作,因为 $FileCopy 变量采用文件完整路径的形式,但即使您替换了该行

Copy-Item -Path "$Source\$FileCopy"

在

Copy-Item -Path "$FileCopy"

目标处的脚本会创建一个文件夹而不是文件,因此在没有找到文件的情况下会失败。告诉我如何从目标目录中选择备份文件。

powershell
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Volkov
Asked: 2020-02-01 19:43:27 +0000 UTC

使用SLS文件安装1c时,服务没有安装

  • 0

有一个我自己写的 SLS 文件。计划用于在偏远点安装1C。在点的服务器上,您不需要将服务器放在结帐处,条件已描述。问题是在1C服务器应该在的机器上安装时,没有创建服务,安装了管理控制台,ragent.exe也在安装路径上,不仅有服务。
SLS 文件示例。

1c_32:
  {% for version in ['8.3.12.1714',
                     '8.3.12.1685',
                     '8.3.10.2667',
                     '8.3.10.2252',
                     '8.3.8.2137',
                     '8.3.6.2152',
                     '8.2.19.83'] %}
  {% if grains['windowsdomain'] == 'WORKGROUP' %}
  {% set install_location = 'APTEKA' %}
  {% else %}
  {% set install_location = 'srv-fs' %} 
  {% endif %}
  '{{ version }}':
    full_name: '1C:Предприятие 8 ({{ version }})'
    installer: '//{{ install_location }}/install/1c/{{ version }}/windows/x32/1CEnterprise 8.msi'
  {% if grains['host'] == 'APTEKA' %}
    install_flags: '/lv D:\log.txt /qr  TRANSFORMS=1049ph-2.mst DESIGNERALLCLIENTS=1 SERVER=1 SERVERCLIENT=1 LANGUAGES=RU'
  {% else %}
    install_flags: '/lv D:\log.txt /qr  TRANSFORMS=1049ph-2.mst DESIGNERALLCLIENTS=1 LANGUAGES=RU'
  {% endif %}
    uninstaller: '//{{ install_location }}/install/1c/{{ version }}/windows/x32/1CEnterprise 8.msi'
    uninstall_flags: '/qn /norestart '
    reboot: False
    msiexec: True
  {% endfor %}

如果我理解正确,那么结果是一行表格

"\COMPUTERNAME\install\1c\VRSION\windows\x32\1CEnterprise 8.msi" /lv D:\log.txt /qr TRANSFORMS=1049ph-2.mst DESIGNERALLCLIENTS=1 THINCLIENTFILE=0 THINCLIENT=0 WEBSERVEREXT=0 SERVER= 1 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=1 语言=RU

因此,如果您从命令行执行同一行,那么一切都已按应有的方式设置,包括服务。

saltstack
  • 2 个回答
  • 10 Views
Martin Hope
Dmitry Volkov
Asked: 2020-12-06 19:52:58 +0000 UTC

pkg.remove 不删除应用程序

  • 0

有一个我自己写的 SLS 文件。安装按预期工作,放置小兵的应用程序按预期返回所有内容。但是当我尝试使用 remove 方法删除同一个应用程序时,minion 会返回错误。

[错误] salt 的全局异常处理程序捕获了一个未处理的异常: KeyError: '8.3.10.2667' Traceback (last recent call last): File "C:\salt\bin\Scripts\salt-call",第 11 行,在 salt_call() 文件“C:\salt\bin\lib\site-packages\salt\scripts.py”中,第 400 行,在 salt_call client.run() 文件中“C:\salt\bin\lib\site-packages \salt\cli\call.py”,第 57 行,运行 caller.run() 文件“C:\salt\bin\lib\site-packages\salt\cli\caller.py”,第 134 行,运行 ret = self.call() 文件“C:\salt\bin\lib\site-packages\salt\cli\caller.py”,第 212 行,调用 ret['return'] = func(*args, **kwargs ) 文件 "C:\salt\bin\lib\site-packages\salt\modules\win_pkg.py",第 1638 行,删除 # 获取卸载程序 KeyError: '8.3.10.2667'回溯(最近一次调用最后):文件“C:\salt\bin\Scripts\salt-call”,第 11 行,在 salt_call() 文件“C:\salt\bin\lib\site-packages\salt\scripts. py”,第 400 行,salt_call client.run() 文件“C:\salt\bin\lib\site-packages\salt\cli\call.py”,第 57 行,运行 caller.run() 文件“C :\salt\bin\lib\site-packages\salt\cli\caller.py",第 134 行,运行中 ret = self.call() 文件 "C:\salt\bin\lib\site-packages\salt\ cli\caller.py”,第 212 行,调用 ret['return'] = func(*args, **kwargs) 文件“C:\salt\bin\lib\site-packages\salt\modules\win_pkg.py ",第 1638 行,删除 # 获取卸载程序 KeyError: '8.3.10.2667'\salt\bin\lib\site-packages\salt\scripts.py”,第 400 行,在 salt_call client.run() 文件“C:\salt\bin\lib\site-packages\salt\cli\call.py ",第 57 行,在运行 caller.run() 文件中 "C:\salt\bin\lib\site-packages\salt\cli\caller.py",第 134 行,在运行 ret = self.call() 文件中" C:\salt\bin\lib\site-packages\salt\cli\caller.py",第 212 行,调用 ret['return'] = func(*args, **kwargs) 文件“C:\salt\ bin\lib\site-packages\salt\modules\win_pkg.py", line 1638, in remove # Get the uninstaller KeyError: '8.3.10.2667'\salt\bin\lib\site-packages\salt\scripts.py”,第 400 行,在 salt_call client.run() 文件“C:\salt\bin\lib\site-packages\salt\cli\call.py ",第 57 行,在运行 caller.run() 文件中 "C:\salt\bin\lib\site-packages\salt\cli\caller.py",第 134 行,在运行 ret = self.call() 文件中" C:\salt\bin\lib\site-packages\salt\cli\caller.py",第 212 行,调用 ret['return'] = func(*args, **kwargs) 文件“C:\salt\ bin\lib\site-packages\salt\modules\win_pkg.py", line 1638, in remove # Get the uninstaller KeyError: '8.3.10.2667'\salt\bin\lib\site-packages\salt\cli\caller.py",第 212 行,调用 ret['return'] = func(*args, **kwargs) 文件“C:\salt\bin\ lib\site-packages\salt\modules\win_pkg.py", line 1638, in remove # Get the uninstaller KeyError: '8.3.10.2667'\salt\bin\lib\site-packages\salt\cli\caller.py",第 212 行,调用 ret['return'] = func(*args, **kwargs) 文件“C:\salt\bin\ lib\site-packages\salt\modules\win_pkg.py", line 1638, in remove # Get the uninstaller KeyError: '8.3.10.2667'

SLS文件的内容是

1c_32_asb:
  '8.3.10.2267':
    full_name: '1C:Предприятие 8 (8.3.10.2667)'
    installer: '//srv-fs/install/1c/8.3.10.2667/windows/x32/1CEnterprise_8.msi'
    install_flags: '/qn /norestart /la d:/loginstall1c.txt TRANSFORMS=1049sph.mst DESIGNERALLCLIENTS=1 THINCLIENTFILE=0 THINCLIENT=0 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU'
    uninstaller: '//srv-fs/install/1c/8.3.10.2667/windows/x32/1CEnterprise_8.msi'
    uninstall_flags: '/qn /norestart /la d:/loguninstall1c.txt'
    reboot: False
    msiexec: True
saltstack
  • 1 个回答
  • 10 Views
Martin Hope
Dmitry Volkov
Asked: 2020-08-23 21:06:46 +0000 UTC

使用 pkg.refresh_db 模块时出错

  • 1

创建自己的 sls 文件并尝试将其同步到 minions 时,它会响应错误:

错误:生成 repo db 时发生错误。附加信息如下:

failed:
    1
failed_list:
    ----------
    salt-winrepo-ng\wget.sls:
        - package 'wget', repo data for version number full_name is not defined as a dictionary
        - package 'wget', repo data for version number installer is not defined as a dictionary
        - package 'wget', repo data for version number install_flags is not defined as a dictionary
        - package 'wget', repo data for version number uninstaller is not defined as a dictionary
        - package 'wget', repo data for version number uninstall_flags is not defined as a dictionary
        - package 'wget', repo data for version number msiexec is not defined as a dictionary
        - package 'wget', repo data for version number locale is not defined as a dictionary
        - package 'wget', repo data for version number reboot is not defined as a dictionary"

SLS的内容是:

# just 32-bit x86 installer available
{% if grains['cpuarch'] == 'AMD64' %}
    {% set PROGRAM_FILES = "%ProgramFiles(x86)%" %}
{% else %}
    {% set PROGRAM_FILES = "%ProgramFiles%" %}
{% endif %}
wget:
    full_name: 'wget'
    installer: 'http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe'
    install_flags: '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
    uninstaller: '{{ PROGRAM_FILES }}\GnuWin32\uninstall\unins001.exe'
    uninstall_flags: '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
    msiexec: False
    locale: en_US
    reboot: Fals
saltstack
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5