55 lines
1.9 KiB
PowerShell
55 lines
1.9 KiB
PowerShell
# Setup Daily Backup Task via PowerShell
|
|||
|
|
$TaskName = "TradingBotDailyBackup"
|
||
|
|
$ScriptPath = "$PSScriptRoot\daily_backup.bat"
|
||
|
|
$Time = "00:00"
|
||
|
|
|
||
|
|
Write-Host "================================================================================"
|
||
|
|
Write-Host " Setting up Daily Backup Task"
|
||
|
|
Write-Host "================================================================================"
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "Task Name: $TaskName"
|
||
|
|
Write-Host "Script: $ScriptPath"
|
||
|
|
Write-Host "Time: $Time (midnight)"
|
||
|
|
Write-Host ""
|
||
|
|
|
||
|
|
# Check if task exists
|
||
|
|
$ExistingTask = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
||
|
|
|
||
|
|
if ($ExistingTask) {
|
||
|
|
Write-Host "[INFO] Task already exists, will be replaced..."
|
||
|
|
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
|
||
|
|
}
|
||
|
|
|
||
|
|
# Create Action
|
||
|
|
$Action = New-ScheduledTaskAction -Execute $ScriptPath -WorkingDirectory $PSScriptRoot
|
||
|
|
|
||
|
|
# Create Trigger (Daily at midnight)
|
||
|
|
$Trigger = New-ScheduledTaskTrigger -Daily -At $Time
|
||
|
|
|
||
|
|
# Create Settings
|
||
|
|
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
|
||
|
|
|
||
|
|
# Register Task
|
||
|
|
Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Settings $Settings -Description "Daily backup of trading_bot.db" -User $env:USERNAME
|
||
|
|
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "================================================================================"
|
||
|
|
Write-Host " Task created successfully!"
|
||
|
|
Write-Host "================================================================================"
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "Verification:"
|
||
|
|
|
||
|
|
# Verify
|
||
|
|
$Task = Get-ScheduledTask -TaskName $TaskName
|
||
|
|
$Task | Select-Object TaskName, State | Format-Table
|
||
|
|
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "Next Run Time:"
|
||
|
|
$Task | Get-ScheduledTaskInfo | Select-Object NextRunTime | Format-Table
|
||
|
|
|
||
|
|
Write-Host ""
|
||
|
|
Write-Host "[OK] Daily backup will run at midnight (00:00)"
|
||
|
|
Write-Host "[OK] Keeps last 7 days of backups"
|
||
|
|
Write-Host "[OK] Location: backups/trading_bot_daily_YYYYMMDD.db"
|
||
|
|
Write-Host ""
|