Yanıtlar:
Sadece kendi işimi yapılandırmak için bu sayfadaki tavsiyeyi kullandığım için cevap vermek istedim crontab -e
.
Lubuntu (güvenilir) çalıştırıyorum ve yukarıdaki benim için işe yaramadı, ama biraz tweaking ile yaptı. Deneyim seviyem, temel komut dosyalarını ve komutları nispeten okuyabildiğim, ancak bunları linux distolarında sıfırdan yazabildiğimden. Bahsettiğim için, birlikte çalışan bir akü alarmı toparlayabilirsem, bunu okuyan birçoğunuzun da yapabilmesi gerekir!
SO .... senaryo ve temel bir açıklama ....
Glutanimate ve Scott Goodgame'in yukarıdaki mesajlarına göre (teşekkürler çocuklar!), Temelde aşağıdakileri yaptım:
Mppg123 almak ve ses çalabilmek için:
sudo apt-get install acpi mpg123
Komutu yazmak için açılacak dosya:
crontab -e
Dosyanın sonuna girmek için komut:
*/1 * * * * if [ `acpi -b | awk ' { print ( $(NF-2)-0)}'` -lt "15" ] ; then mpg123 /home/andy/Alarm.mp3 ; fi
Başlangıçta yıldız işaretleri
Beş yıldız, komutların çalıştırılma sıklığını temsil eder.
*/1 * * * *
"bunu her dakika çalıştır" anlamına gelir.
EĞER / THEN / FI:
IF [ stuff inside these brackets ] ; THEN do something ; FI
Çoğunuz, sanırım, IF / THEN ifadelerine çok aşinasınız. Sondaki FI, IF ifadesini sonuçlandırır
Sesi çalma:
mpg123 /home/andy/Alarm.mp3
bu sadece ana dizinimde bulunan mpg123
adlı dosyayı çalmak için kullanılır .Alarm.mp3
/home/andy/
Çıkış pil bilgisi:
acpi -b
bu sadece pil durumunu verir. Dizüstü bilgisayarımda aşağıdaki gibi sonuçlar verir:
Battery 0: Discharging, 74%, 02:35:18 remaining
Borudan awk komutuna
| awk ' { print ( $(NF-2)-0)}'` -lt "15"
Tamam, bu yüzden yukarıdaki pil durumunun çıkışını boruya bağlıyoruz ve yukarıdaki örnekte '% 74' olan uçtan uca ikinci değeri (NF-2) yazdırıyoruz . Ancak, 'yüzde' -0 değerini kaldırmamız gerekiyor . Mevcut değeri 15 -lt "15" değeri ile karşılaştırmak istiyoruz . Yani onu basit İngilizce olarak özetlemek gerekirse,
Pilin değeri% 15 SONRA DAHA AZ ise bir ses dosyası çalın
Biraz daldırdığımı takdir ediyorum ve belki de açıklamam geliştirilebilir, ancak umarım bir başkası pil için nasıl alarm ekleyeceğini ve dizüstü bilgisayarlarının aniden kapanmasını önleyecek bir şeylere yardımcı olacaktır!
İyi şanslar!
Tamam ... yani dizüstü bilgisayarım şarj olurken,
acpi -b
dır-dir:
Battery 0: Charging, 35%, 01:04:08 until charged
oysa pil ile
Battery 0: Discharging, 36%, 01:22:36 remaining
bu yüzden başlangıçta belirtilen parametreyi kullanarak
print ( $(NF-2)-0)
farklı sonuçlar verir, çünkü unutmayın, NF değeri biti, çıkışın sonundan geriye doğru kaç öğe görüntüleneceğini belirtir, bu nedenle pilin çıkışı
Battery 0: Discharging, 36%, 01:22:36 remaining
$(NF-2)
şarjı dizüstü bilgisayar varken '% 36',
Battery 0: Charging, 35%, 01:04:08 until charged
$(NF-2)
'00: 50: 12 'çıkışı, yani şarj edilene kadar kalan süre.
-0
Sonra $(NF-2)
minuses değerdir ve bu sayede bir yüzde değeri sıfır -0
36 'için "'36% şey gibi değiştirir. Çıkış değeri yukarıdaki gibi '01: 04: 08 'zaman çıkışı gibi sayısal olmayan olarak algılanırsa, değer -0
' 0 'olur. Böylece sorunumu görebilirsiniz - dizüstü bilgisayarım şarj olduğunda, çıkış değeri her zaman '0'dır. Çıkış değeri 15'ten düşük olduğunda bir alarm çalmak istediğim için, şarj olduğunda her dakikada bir çalan bir alarm alarmına dönüşür!
awk
Komutun çıktısını biraz daha okudum ve sonunda ikinci değeri okumasına gerek yoktu, çıkışın başından başlayıp ileri atlayabilirim. Bu, pil durumumun parametre sayısı açısından şarjda mı yoksa pilde mi olduğu ile aynı şekilde başladığı için çok daha iyidir, yani başlangıçtan dördüncü parametre her zaman yüzde olarak şarj değeridir.
SO ... dördüncü değeri okumak için, komut
awk ' { print ($(NF-2)-0)}'
için
awk ' { print ($4)-0}'
ya da tüm ihtişamıyla:
*/1 * * * * if [ `acpi -b | awk ' { print ($4)-0}'` -lt "15" ] ; then mpg123 /home/andy/Alarm.mp3 ; fi
Umarım birisine yardım eder! İyi şanslar ve okuduğunuz için teşekkürler!
Tamam, biraz daha fazla alay ettim ve ayrıca alarmı çalmadan önce ses seviyesini nasıl% 100'e ayarlayacağımı ve sesini açtım - çünkü yüzleşelim, duyamazsanız bir pil alarmının anlamı nedir? Sesi düşük mü yoksa sessiz mi ayarladınız ?!
Her neyse, ihtiyacınız olan komut:
*/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
gördüğünüz gibi, yaptığım tek şey komut dizesini eklemek
pactl set-sink-volume 0 100% && pactl set-sink-mute 0 0 &&
( &&
sadece birden fazla komutu birbirine bağlar)
Yine, iyi şanslar!
Tamam, yani ... bir final (umarım!) Düzenleme ... görünüşe göre, yüzde işareti cron görevlerini çalıştırırken özel bir işarettir. Bu nedenle, \
her birinin önüne bir ters eğik çizgi ( ) koyarak yüzde işaretinden 'kaçmanız' %
gerekir, böylece kabuk tarafından (yanlış) yorumlanmaz.
Temel olarak değiştirin
100%
ile
100\%
Bu nedenle, gerçekten ihtiyacınız olan komut:
*/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
vay benim için olduğu gibi sizin için sıralar umut !! (Sonuçta!)
Her 5/10 dakikada bir pil durumunu kontrol edecek bir cron işi ayarlayabilirsiniz ve ardından pil yüzdesine bağlı olarak biraz ses çalacaktır.
Sesi çalmak için kullanabilirsiniz
mpg123
filename.mp3
Yüklemek için
sudo apt-get install mpg123
Komut satırından pil durumunu almak için bu komutu kullanabilirsiniz
upower -i /org/freedesktop/UPower/devices/battery_BAT0
kullanarak grep
tam bilgileri aşağıdaki gibi ayıklayabilirsiniz
upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"
Artık tüm bunları bir kabuk komut dosyasına (ve if
pil durumunun% 10'dan düşük olup olmadığını kontrol etmek için bir koşul) koyabilir ve sadece bu kabuk komut dosyasının cron işine yol verebilirsiniz.
böylece her 5 dakikada bir (Bu aralığı değiştirebilirsiniz) pil durumunuz kontrol edilir ve pil% 10'dan düşükse, sağlanan ses dosyanız çalınır!
Bu yardımcı olur umarım!
Bunu yapmanın kolay bir yolu, crontab'ınıza basit bir kontrol eklemektir (cron, işleri arka planda düzenli, kullanıcı tanımlı bir temelde çalıştırmak için bir sistemdir.)
Pil durumunu okuyabilmek için önce bir komut satırı mp3 çalar ve acpi yüklemeniz gerekir.
Bir terminalden paketleri kurmak için aşağıdakileri çalıştırın.
sudo apt-get install acpi mpg123
Ardından, hala terminaldeyken, crontab -e
aşağıdakileri yazın ve dosyanın sonuna girin. Kullanıcıyı kullanıcı adınızla ve .mp3 dosyasını ana dizininizdeki dosya adınız olarak değiştirmeniz yeterlidir.
*5 * * * * if [ `acpi |awk '{print substr($NF, 0, length($NF)-1)}'` -lt "10" ] ; then mpg123 /home/user/SuperCoolSound.mp3 ;fi
Kaydetmek için Control-O (harf) ve Enter tuşuna basın. Çıkmak için Control-x tuşlarına basın
Okumak isteyebileceğiniz ekstra şeyler ...
acpi |awk '{print substr($NF, 0, length($NF)-1)}'
-lt "10"]; sonra aplay /home/felipelalli/Music/siren.wav; fi [: tamsayı ifadesi bekleniyor: remainin ac ~ acpi Pil 0: Boşalma, 9%, 00:17:56 kaldı
Aslında Andy Pyne'nin cevabını kullandım ama benim için işe yaramadı. Cron kodu yürüttü, ancak sesi çalmadı. Sonunda çözümü buldum ve paylaşıyorum:
Adım 1: MP3'ü yükleyin
sudo apt-get install acpi mpg123
Adım 2:
Aşağıdaki komutu kaydedin~/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
Dizüstü bilgisayar boşalıyorsa ve şarj% 15'ten az veya eşitse, bu komut dosyası battery_low.mp3 oynatır. (AC gücü bağlıysa, sizi uyarmaz). Bu kod, ücret% 100 ise sizi uyarır. Tam şarjlı durum için uyarı istemiyorsanız, diğer kısmı bu koddan kaldırın.
Adım 3: Aşağıdaki komutu kullanarak dosyayı yürütülebilir yapın.
chmod +x ~/bin/battery_alert
Adım 4: opend by crontrab -e
komutunun sonuna aşağıdaki komutu ekleyerek cron kullanarak bu dosyayı yürütün .
*/5 * * * * /home/user/bin/battery_alert
(Bu komuttan sonra boş bir satır almayı unutmayın)