Steps
1. get the latest file name , file name format : '.txt'
2. check the file content , upto line containing AMP , updated with
today's logs
3. archive/compress the file
4. delete the original file
[ansible@ip-172-31-25-114 playbooks]$ cat hmscript.ps1
$dir = "C:\Users\ansible\Documents\logs\"
$filter="*.txt"
$latest = Get-ChildItem -Path $dir -Filter $filter | Sort-Object
LastAccessTime -Descending | Select-Object -First 1
$latest.name
Compress-Archive "$dir\$latest" -DestinationPath ($dir + (get-date -Format
yyyyMMdd) + '.zip')
[ansible@ip-172-31-25-114 playbooks]$
[ansible@ip-172-31-25-114 playbooks]$ cat test_win_script2.yml
- name: Run powershell script
hosts: windows
gather_facts: false
tasks:
- name: Run powershell script
script: ./hmscript.ps1
register: result
- debug: var=result.stdout
TASK [Run powershell script]
*******************************************************************************************************************************************
fatal: [172.31.4.147]: FAILED! => {"changed": true, "msg": "non-zero return
code", "rc": 1, "stderr": "The archive file
C:\\Users\\ansible\\Documents\\logs\\20210825.zip already exists. Use the
-Update parameter to update the existing archive file or use the -Force
parameter to overwrite the existing archive file.At
C:\\Users\\ansible\\AppData\\Local\\Temp\\ansible-tmp-1629885879.915333-3177-229706684643369\\hmscript.ps1:5
char:1+ Compress-Archive \"$dir\\$latest\" -DestinationPath ($dir +
(get-date -F ...+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
CategoryInfo : InvalidArgument:
(C:\\Users\\ansibl...gs\\20210825.zip:String) [Compress-Archive],
IOException + FullyQualifiedErrorId :
ArchiveFileExists,Compress-ArchiveScriptStackTrace:at
ThrowTerminatingErrorHelper,
C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\Microsoft.PowerShell.Archive\\Microsoft.PowerShell.Archive.psm1:
line 1197at Compress-Archive<Begin>,
C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\Microsoft.PowerShell.Archive\\Microsoft.PowerShell.Archive.psm1:
line 135at <ScriptBlock>,
C:\\Users\\ansible\\AppData\\Local\\Temp\\ansible-tmp-1629885879.915333-3177-229706684643369\\hmscript.ps1:
line 5at <ScriptBlock>, <No file>: line 1System.IO.IOException: The archive
file C:\\Users\\ansible\\Documents\\logs\\20210825.zip already exists. Use
the -Update parameter to update the existing archive file or use the -Force
parameter to overwrite the existing archive file. at
System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord
errorRecord)", "stderr_lines": ["The archive file
C:\\Users\\ansible\\Documents\\logs\\20210825.zip already exists. Use the
-Update parameter to update the existing archive file or use the -Force
parameter to overwrite the existing archive file.At
C:\\Users\\ansible\\AppData\\Local\\Temp\\ansible-tmp-1629885879.915333-3177-229706684643369\\hmscript.ps1:5
char:1+ Compress-Archive \"$dir\\$latest\" -DestinationPath ($dir +
(get-date -F ...+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +
CategoryInfo : InvalidArgument:
(C:\\Users\\ansibl...gs\\20210825.zip:String) [Compress-Archive],
IOException + FullyQualifiedErrorId :
ArchiveFileExists,Compress-ArchiveScriptStackTrace:at
ThrowTerminatingErrorHelper,
C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\Microsoft.PowerShell.Archive\\Microsoft.PowerShell.Archive.psm1:
line 1197at Compress-Archive<Begin>,
C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\Microsoft.PowerShell.Archive\\Microsoft.PowerShell.Archive.psm1:
line 135at <ScriptBlock>,
C:\\Users\\ansible\\AppData\\Local\\Temp\\ansible-tmp-1629885879.915333-3177-229706684643369\\hmscript.ps1:
line 5at <ScriptBlock>, <No file>: line 1System.IO.IOException: The archive
file C:\\Users\\ansible\\Documents\\logs\\20210825.zip already exists. Use
the -Update parameter to update the existing archive file or use the -Force
parameter to overwrite the existing archive file. at
System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord
errorRecord)"], "stdout": "hm-amp2-trace-20210825-0001.txt\r\n",
"stdout_lines": ["hm-amp2-trace-20210825-0001.txt"]}
[ansible@ip-172-31-25-114 playbooks]$ cat test_win_script.yml
---
- name: test windows powershell script
hosts: windows
tasks:
- name: trying powershell
win_shell:
script: |
D:\dmlogs\hm\hm-amp2-trace-2021mmdd-hhmm.log
$dir = " D:\dmlogs\hm"
$filter="hm-amp2-trace-*.log"
$latest = Get-ChildItem -Path $dir -Filter
$filter | Sort-Object LastAccessTime -Descending | Select-Object -First 1
$latest.name
Compress-Archive "$dir\$latest"
-DestinationPath ($dir + (get-date -Format yyyyMMdd) + '.zip')
register: win_output
- debug: var=win_output.stdout
[ansible@ip-172-31-25-114 playbooks]$
[ansible@ip-172-31-25-114 playbooks]$ ansible-playbook test_win_script.yml
PLAY [test windows powershell script]
**********************************************************************************************************************************
TASK [Gathering Facts]
*************************************************************************************************************************************************
ok: [172.31.4.147]
TASK [trying powershell]
***********************************************************************************************************************************************
fatal: [172.31.4.147]: FAILED! => {"changed": false, "msg":
"Get-AnsibleParam: Missing required argument: _raw_params"}
PLAY RECAP
*************************************************************************************************************************************************************
172.31.4.147 : ok=1 changed=0 unreachable=0 failed=1
skipped=0 rescued=0 ignored=0
[ansible@ip-172-31-25-114 playbooks]$
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/CANPH-qx96J2nvDtt%3DXWWNvkVjoQQqLpWky93kZ9tX6nPer%2BKvA%40mail.gmail.com.