답변:
이 페이지에서 내 crontab -e
작업 을 구성하기위한 조언을 사용하면서 답장하고 싶었 습니다.
나는 Lubuntu (trusty)를 실행 중이며 위의 내용은 나에게는 효과가 없었지만 약간 조정하면 효과가있었습니다. 내 경험 수준은 기본 스크립트와 명령을 상대적으로 읽을 수는 있지만 Linux disto에서 처음부터 작성할 수는 없다는 것입니다. 나는 작동하는 배터리 알람을 함께 사용할 수 있다면 이것을 읽는 대부분의 사람들도 할 수 있어야한다고 언급했습니다!
그래서 .... 스크립트와 기본 설명 ....
Glutanimate와 Scott Goodgame의 게시물에 따라 (감사합니다!) 기본적으로 다음을 수행했습니다.
mpg123을 얻고 오디오를 재생하려면 :
sudo apt-get install acpi mpg123
명령을 작성하기 위해 열 파일 :
crontab -e
파일 끝에서 입력하는 명령 :
*/1 * * * * if [ `acpi -b | awk ' { print ( $(NF-2)-0)}'` -lt "15" ] ; then mpg123 /home/andy/Alarm.mp3 ; fi
처음에 별표
별표 5 개는 명령을 실행하는 빈도를 나타냅니다.
*/1 * * * *
'1 분마다 실행'을 의미합니다.
IF / THEN / FI :
IF [ stuff inside these brackets ] ; THEN do something ; FI
대부분의 경우 IF / THEN 문에 매우 익숙합니다. 마지막 FI는 IF 진술을 마치고
오디오 재생 :
mpg123 /home/andy/Alarm.mp3
이것은 단순히 내 홈 디렉토리에 mpg123
있는 파일을 재생하는 데 사용 됩니다 .Alarm.mp3
/home/andy/
출력 배터리 정보 :
acpi -b
이것은 단순히 배터리 상태를 출력합니다. 내 노트북에서 다음과 같은 결과를 얻습니다.
Battery 0: Discharging, 74%, 02:35:18 remaining
awk로 파이프 명령
| awk ' { print ( $(NF-2)-0)}'` -lt "15"
자, 위의 배터리 상태 출력을 파이핑 하고 위의 예제에서 '74 % '인 두 번째 끝 값 (NF-2) 을 인쇄 합니다 . 그러나 'percentage'- 0 을 제거해야합니다 . 현재 값을 15 -lt "15" 값과 비교하려고합니다 . 일반 영어로 요약하면
배터리 값이 15 % 이상이면 오디오 파일을 재생합니다
나는 그것을 조금 바보로 만들었고 고맙게도 내 설명이 향상 될 수 있지만 고맙게도 누군가가 배터리에 알람을 추가하고 랩톱이 갑자기 꺼지는 것을 피하는 방법을 이해하는 데 도움이되기를 바랍니다.
행운을 빕니다!
알았어 ... 그래서 랩탑을 충전 할 때
acpi -b
입니다 :
Battery 0: Charging, 35%, 01:04:08 until charged
배터리는
Battery 0: Discharging, 36%, 01:22:36 remaining
처음에 언급 된 매개 변수를 사용하여
print ( $(NF-2)-0)
NF- 값 비트는 출력의 끝에서 뒤로 표시 할 항목 수를 지정하므로 배터리의 출력은
Battery 0: Discharging, 36%, 01:22:36 remaining
$(NF-2)
노트북을 충전 한 상태에서 '36 % '출력
Battery 0: Charging, 35%, 01:04:08 until charged
$(NF-2)
출력 '00 : 50 : 12 ', 즉 충전 될 때까지 남은 시간.
-0
후 $(NF-2)
마이너스의 값이기 때문에 경우 퍼센트 값으로부터 제로 -0
36 '에''36 % 같은에서 변화. 출력 값이 위와 같이 '01 : 04 : 08 '의 시간 출력과 같이 숫자가 아닌 것으로 인식되면 -0
반환 값 은'0 '입니다. 내 노트북을 충전 할 때 출력 값은 항상 '0'입니다. 출력 값이 15보다 작을 때 알람을 재생하고 싶을 때 충전 중 1 분마다 꺼지는 배터리 알람으로 변환됩니다!
나는 awk
명령 의 출력에 대해 조금 더 읽고 그것을 끝에서 두 번째 값을 읽을 필요가 없다는 것을 알았습니다. 출력의 처음부터 시작하여 앞으로 건너 뛸 수있었습니다. 배터리 상태가 충전 중이거나 배터리 수에 관계없이 매개 변수 수 측면에서 동일하게 시작되므로 훨씬 좋습니다. 즉, 처음부터 네 번째 매개 변수는 항상 백분율 값입니다.
SO ... 네 번째 값을 읽으려면 명령이
awk ' { print ($(NF-2)-0)}'
에
awk ' { print ($4)-0}'
또는 완전한 영광으로 :
*/1 * * * * if [ `acpi -b | awk ' { print ($4)-0}'` -lt "15" ] ; then mpg123 /home/andy/Alarm.mp3 ; fi
다시 나는 그것이 누군가를 돕기를 바랍니다! 읽어 주셔서 감사합니다.
자, 약간의 추가 파킹과 알람을 재생하기 전에 음량을 100 %로 설정하고 음소거를 해제하는 방법을 알아 냈습니다. ve 음량을 낮게 설정하거나 음소거 하시겠습니까?!
어쨌든 필요한 명령은 다음과 같습니다.
*/1 * * * * if [ `acpi -b | awk ' { print ($4)-0}'` -lt "15" ] ; then pactl set-sink-volume 0 100% && pactl set-sink-mute 0 0 && mpg123 /home/andy/Alarm.mp3 ; fi
보시다시피, 내가 한 모든 것은 명령 문자열을 삽입하는 것입니다.
pactl set-sink-volume 0 100% && pactl set-sink-mute 0 0 &&
(의 &&
여러 명령을 함께 바인딩합니다)
다시 한번 행운을 빌어 요!
자, 마지막으로 (최선 적으로!) 하나의 편집 ... 분명히 백분율 기호는 cron 작업을 실행할 때 특별한 기호입니다. 따라서 백 슬래시 ( \
)를 앞에 두면 백분율 기호를 '이스케이프' %
해야 셸에서 해석되지 않습니다.
따라서 기본적으로 교체
100%
와
100\%
따라서 실제로 필요한 명령은 다음과 같습니다.
*/1 * * * * if [ `acpi -b | awk ' { print ($4)-0}'` -lt "15" ] ; then pactl set-sink-volume 0 100\% && pactl set-sink-mute 0 0 && mpg123 /home/andy/Alarm.mp3 ; fi
그것이 나를 위해있는 것처럼 당신을 위해 그것을 분류하는 휴 희망! (결국!)
5/10 분마다 배터리 상태를 확인하는 크론 작업을 설정할 수 있으며 배터리 비율에 따라 소리가 재생됩니다.
사용할 수있는 소리를 재생하려면
mpg123
filename.mp3
설치하려면
sudo apt-get install mpg123
명령 행에서 배터리 상태를 얻으려면이 명령을 사용할 수 있습니다
upower -i /org/freedesktop/UPower/devices/battery_BAT0
를 사용 grep
하면 다음과 같이 정확한 정보를 추출 할 수 있습니다
upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"
이제이 모든 것들을 쉘 스크립트 ( if
배터리 상태가 10 % 미만인지 확인 하는 조건)에 넣고이 쉘 스크립트의 경로를 크론 작업에 제공 할 수 있습니다.
5 분마다 (이 간격을 변경할 수 있음) 배터리 상태가 확인되고 배터리가 10 % 미만이면 제공된 사운드 파일이 재생됩니다!
도움이 되었기를 바랍니다!
이를 수행하는 한 가지 쉬운 방법은 crontab에 간단한 검사를 추가하는 것입니다 (cron은 백그라운드에서 정기적으로 사용자 정의 된 방식으로 작업을 실행하는 시스템입니다).
먼저 배터리 상태를 읽으려면 명령 줄 mp3 플레이어와 acpi를 설치해야합니다.
터미널에서 다음을 실행하여 패키지를 설치하십시오.
sudo apt-get install acpi mpg123
다음으로 터미널에 여전히있는 동안 crontab -e
파일 끝에 다음을 입력 하고 입력하십시오. 사용자를 사용자 이름으로 변경하고 .mp3을 홈 디렉토리의 파일 이름으로 변경하십시오.
*5 * * * * if [ `acpi |awk '{print substr($NF, 0, length($NF)-1)}'` -lt "10" ] ; then mpg123 /home/user/SuperCoolSound.mp3 ;fi
Control-O (문자)를 누르고 Enter를 눌러 저장하십시오. Control-x를 눌러 종료
읽고 싶은 추가 자료 ...
acpi |awk '{print substr($NF, 0, length($NF)-1)}'
-lt "10"]; aplay /home/felipelalli/Music/siren.wav; fi [: 정수 식 예상 : 남아 있음 ➜ ~ acpi 배터리 0 : 방전, 9 %, 00:17:56 남음
실제로 나는 Andy Pyne 의 대답을 사용 했지만 그것은 효과가 없었습니다. 크론은 코드를 실행했지만 소리를 재생하지 않았습니다. 마지막으로 해결책을 찾고 여기에서 공유했습니다.
1 단계 : mpg3 설치
sudo apt-get install acpi mpg123
2 단계 :
다음 명령을~/bin/battery_alert
#!/bin/bash
PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
if [ `acpi -b | awk ' { print ($3)}'` == "Discharging," ] ; then
# Discharging
# Monitor for low battery
if [ `acpi -b | awk ' { print ($4)-0}'` -le "15" ] ; then
pactl set-sink-volume 0 75\% && pactl set-sink-mute 0 0 && mpg123 /home/user/battery_low.mp3 ;
fi
else
# Charging
if [ `acpi -b | awk ' { print ($4)-0}'` -eq "100" ] ; then
# Fully charged
pactl set-sink-volume 0 75\% && pactl set-sink-mute 0 0 && mpg123 /home/user/battery_full.mp3 ;
fi
fi
랩톱이 방전 중이고 충전량이 15 % 이하인 경우이 스크립트는 battery_low.mp3를 재생합니다. (AC 전원이 연결되어 있으면 경고하지 않습니다). 이 코드는 또한 요금이 100 % 인 경우 사용자에게 경고합니다. 완전히 충전 된 상태에 대한 경고를 원하지 않으면이 코드에서 else 부분을 제거하십시오.
3 단계 : 다음 명령을 사용하여 파일을 실행 가능하게 만듭니다.
chmod +x ~/bin/battery_alert
4 단계 : 명령으로 연 파일 끝에 다음 명령을 추가하여 cron을 사용하여이 파일을 실행하십시오 crontrab -e
.
*/5 * * * * /home/user/bin/battery_alert
(이 명령 뒤에 빈 줄을 두는 것을 잊지 마십시오)