Files
local_machine/docs/printer/clear-hp-jobs.sh
2026-03-14 20:03:57 +03:00

71 lines
2.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Скрипт для сброса подвисших задач печати HP принтера на macOS
set -e
echo "🔍 Поиск HP принтеров..."
# Найти все HP принтеры
HP_PRINTERS=$(lpstat -p 2>/dev/null | grep -i "hp" | awk '{print $2}' || true)
if [ -z "$HP_PRINTERS" ]; then
echo "❌ HP принтеры не найдены в системе"
echo ""
echo "Доступные принтеры:"
lpstat -p 2>/dev/null | awk '{print " - " $2}' || echo " (нет принтеров)"
exit 1
fi
echo "✅ Найдены HP принтеры:"
echo "$HP_PRINTERS" | while read printer; do
echo " - $printer"
done
echo ""
echo "📋 Проверка задач печати..."
# Для каждого HP принтера
echo "$HP_PRINTERS" | while read printer; do
echo ""
echo "🖨️ Обработка принтера: $printer"
# Проверить задачи
JOBS=$(lpstat -o "$printer" 2>/dev/null | awk '{print $1}' | cut -d- -f1 | sort -u || true)
if [ -z "$JOBS" ]; then
echo " ✅ Нет задач в очереди"
else
JOB_COUNT=$(echo "$JOBS" | wc -l | tr -d ' ')
echo " ⚠️ Найдено задач: $JOB_COUNT"
# Отменить все задачи для этого принтера
echo " 🗑️ Отмена всех задач..."
cancel -a "$printer" 2>/dev/null || true
# Отменить задачи по ID
echo "$JOBS" | while read job_id; do
if [ ! -z "$job_id" ]; then
cancel "$job_id" 2>/dev/null || true
fi
done
echo " ✅ Задачи отменены"
fi
# Сбросить состояние принтера
echo " 🔄 Сброс состояния принтера..."
cupsenable "$printer" 2>/dev/null || true
cupsaccept "$printer" 2>/dev/null || true
lpadmin -p "$printer" -o printer-is-accepting-jobs=true 2>/dev/null || true
echo " ✅ Принтер готов к работе"
done
echo ""
echo "✅ Готово! Все подвисшие задачи HP принтеров сброшены"
echo ""
echo "📊 Текущий статус:"
lpstat -p 2>/dev/null | grep -i "hp" || echo " (нет HP принтеров)"