আমি কি দাদার ঘড়ির মতো ঘন্টার শীর্ষে ক্রাইম ব্যবহার করতে পারি?


8

প্রশ্নোত্তর পড়তে এবং প্রস্তাবিত কোড স্নিপেটের সাথে পরীক্ষায় আমি জিজ্ঞাসাবাদ হারিয়ে ফেলি। তাই আমি প্রায়শই ঘন্টা সময় শীর্ষে ইন্টারনেটে টিভি নিউজ চ্যানেলগুলি স্যুইচ করা মিস করি। ইউটিউব চ্যানেলগুলির জন্য বড় সমস্যা নয় যা সময় স্থানান্তর করতে দেয়, তবে এটি ফ্ল্যাশ প্লেয়ার ব্যবহার করে টিভি চ্যানেলের জন্য "শো স্টপার"।

cronপ্রতি ঘন্টার শীর্ষে একটি চাকরি চালানোর জন্য কনফিগার করা যেতে পারে যেখানে আমি ক্লক চিমের মতো দাদাকে শোনার জন্য একটি স্ক্রিপ্ট সরবরাহ করি (অবশ্যই সূক্ষ্ম সাউন্ড ভলিউম সহ!)? এক ঘন্টার নীচের দিকেও একটি ছোটখাটো চিম বাজানো যেতে পারে। আমি নিশ্চিত যে আমি নেট .oggবা উপযুক্ত .ogaফাইলগুলি সনাক্ত করতে পারি এবং আমি জানি যে আমি ogg123সেগুলি খেলতে ব্যবহার করতে পারি। আমি cronএটা করতে পারি কিনা জানি না । আমি জানি আমি এমন একটি স্ক্রিপ্ট ব্যবহার করতে পারি যা ঘুমিয়ে পড়ে এবং সময়টি পরীক্ষার জন্য জাগ্রত করে তবে সারাক্ষণ কিছুটা চালিয়ে যাওয়ার চিন্তা পছন্দ করি না (ইতিমধ্যে আমার মনে হয় এমন যথেষ্ট হয়েছে)।

যদি এটি দিয়ে কাজ করা cronযায় তবে কেউ কীভাবে সেট আপ করবেন তার উত্তর দিতে পারে?

ধন্যবাদ.


আমি ইংরাজী রীতিমতো প্রতিবাদে খুব একটা ভাল নই। প্রতি ঘন্টা শীর্ষ মানে প্রতিটি ঘন্টা শুরু?
হিমাইল

1
@ হাইমাইল এলওএল হ্যাঁ আমি ডিজিটাল ঘড়ি আবিষ্কার হওয়ার আগে থেকে এসেছি এবং এক মিনিট হাত ছিল যে যখন "শীর্ষে" বোঝানো হয়েছিল: 00 ঘন্টা এবং যখন "নীচে" মানে: ঘন্টা 30 30 Hehe
WinEunuuchs2Unix

apt-get install sudo mcron - stackoverflow.com/questions/44470965/...
SDsolar


@ এসডসোলার এটি প্রতিস্থাপন বলে মনে হচ্ছে cronএটি প্রশ্নের ক্ষেত্রের বাইরে। এফওয়াইআই আমি নীচে উত্তরে দাদার ক্লক স্ক্রিপ্ট লিখেছি।
WinEunuuchs2Unix

উত্তর:


7

হ্যা, তুমি পারো.

এর cronসাথে আপনার টেবিলটি খুলুন crontab -eএবং যুক্ত করুন:

00 * * * * /path/to/player /path/to/file.ogg

প্রতিস্থাপন করুন /path/to/playerএবং আপনার পছন্দসই /path/to/file.oggমানগুলির সাথে।

00উপরেরটি প্রতি ঘন্টা - প্রথম (প্রথম শুরু) মিনিটে , শব্দটি প্লে করবে (অর্থাত্ কমান্ডটি চালাবে )।

আপনি যদি 30প্রতি ঘন্টােরও-মিনিটেও কমান্ডটি চালাতে চান :

00,30 * * * * /path/to/player /path/to/file.ogg

crontab -eএটি টাইপ করার সময় বলে যে আমার ব্যবহারকারীর অ্যাকাউন্টের জন্য কোনও ফাইল তৈরি করা হয়নি। এটি দিয়ে একটি তৈরির প্রস্তাব দেয় nano। আমি এটি করেছি এবং প্রস্তাবিত আদেশগুলি সেট আপ করেছি। যখন নির্বাচন ^W(লেখার ফাইল) ডিফল্ট ফাইল নাম হল: /tmp/crontab.6QN0vo/crontab। ফাইলের নামটি খুব ভুল দেখাচ্ছে। নতুন crontab -eকনফিগারেশন ফাইল তৈরির জন্য আপনি কি নিজের উত্তর আপডেট করতে পারবেন ? নোট করুন যে আমার সিস্টেমটি ইতিমধ্যে /tmp/IG*একটি দিন পুরানো ফাইলগুলি মুছে ফেলার জন্য সেটআপ রয়েছে যা ভালভাবে চলছে (আমি কীভাবে এই কুকুরছানাটিকে সেট আপ করেছি তা মনে নেই)।
WinEunuuchs2Unix

@ WinEunuuchs2Unix চিন্তা করবেন না, cronসেই ফাইলটি অস্থায়ীভাবে খোলে /tmpআপনি একবার সামগ্রী সংরক্ষণ করলে ফাইলটি তৈরি / প্রতিস্থাপন করা যায় /var/spool/cron/crontabs/<username>এবং স্থায়ীভাবে স্থায়ী হয়।
হিমাইল

6

হিমাইলcron এক ঘন্টার শীর্ষে এবং ঘন্টার নীচে চলতে পেতে সঠিক উত্তর সরবরাহ করেছে । আবার ধন্যবাদ! তবে অন্যান্য ব্যবহারকারীরা আবিষ্কার করেছেন যে এটি একটি cronjobডিফল্টরূপে সাউন্ড ফাইল খেলতে পারে না:


cronশব্দ বাজানোর জন্য কনফিগার করা হচ্ছে

cronসাউন্ড ফাইলগুলি বাজানোর জন্য এটির exportপরিবেশের পরিবর্তনশীল হওয়া দরকার:

export XDG_RUNTIME_DIR="/run/user/1000"

এটি একবার আপনার স্ক্রিপ্টে হয়ে গেলে শব্দগুলি বাজবে।

অন্য উত্তর দ্বারা নির্দেশিত হিসাবে আপনার ব্যবহারকারীর আইডি সর্বদা নাও থাকতে পারে 1000। আপনার ব্যবহারকারীর আইডি ব্যবহার করতে:

$ id

uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)

আপনার ব্যবহারকারীর আইডি যদি 1000 না হয় তবে স্ক্রিপ্টটি আপনার আইডিতে পরিবর্তন করুন।

cronঘন্টা শীর্ষে এবং ঘন্টা নীচে চালানোর জন্য কনফিগার করুন

crontab -e সেটআপ (শুধুমাত্র শেষ 5 লাইন):

# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
00 *    *   *   *    /usr/local/bin/top-of-hour-chime    >/dev/null
00,30 * *   *   *    /usr/local/bin/bottom-of-hour-chime >/dev/null

বেশিরভাগ ব্যবহারকারী এডিটরটি cronব্যবহার করতে পারেন nanonanoআপনার কাজটি সংরক্ষণ করতে এই নিয়ন্ত্রণ কীগুলি ব্যবহার করুন :

  • উপরে গত দুই লাইন যোগ করুন এবং ব্যবহার Ctrl+ + Oলিখতে হে হিসাবে (সংরক্ষণ) ফাইল।
  • একটি /tmp...ফাইল নাম উপস্থাপন করা হয়, তবে উদ্বিগ্ন হন না, কেবল চাপুন Enter
  • Now ব্যবহার Ctrl+ + Xএক্স এটা nanoএডিটর।

bottom-of-hour-chimeঘন্টা খুব উপরের কিন্তু, ঠিক আছে যে যেহেতু এটা ছোট এবং মিষ্টি এ স্ক্রিপ্ট রান।

আপনি না থাকলে >/dev/nullলাইনের শেষে cronকমান্ড আউটপুট আপনাকে ইমেল করার চেষ্টা করে। আপনার যদি মেল সার্ভার সেটআপ না থাকে তবে আপনার /var/log/syslogফাইলে একটি ত্রুটি বার্তা উপস্থিত হবে:

Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)

cronপপ-আপ বিজ্ঞপ্তি প্রদর্শনের জন্য কনফিগার করা

স্ক্রিপ্টটি প্রতি ঘন্টা শীর্ষে একটি পপ-আপ বিজ্ঞপ্তি বার্তা প্রদর্শন করে। সুতরাং এর জন্য অতিরিক্ত পরিবর্তনশীল রফতানি করা দরকার:

eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";

বিষয়বস্তু top-of-hour-chime

#! /bin/bash

# NAME: top-of-hour-chime
# PATH: /usr/local/bin
# DESC: Play sound called by cron
# CALL: Automatically called by /var/spool/cron/crontabs/<user_name>
# DATE: Created Oct 1, 2016. Modified June 10, 2018.
# UPDT: 2016-11-09 - Add notification bubble with time in text.
#       2018-06-10 - Switch from `ogg123` to `paplay` in default installation.

# exit # uncomment to suppress when watching movies

# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"

# needed for notify-send
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";

# get hour in 12 hour format
HOUR=$(date +%I)
ZHOUR=$(echo $HOUR | sed 's/^0*//')

pactl set-sink-volume 0 -25%
DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/appointment-soon.png "It is ""$ZHOUR"" o'clock"
paplay '/usr/share/sounds/ubuntu/ringtones/Melody piano.ogg'
pactl set-sink-volume 0 +25%

export XDG_RUNTIME_DIR...খেলার জন্য শব্দ পাওয়ার প্রয়োজনীয় The এটি হ'ল cronন্যূনতম পরিবেশে। আপনি যদি কোনও তৃতীয় পক্ষের সাউন্ড প্লেয়ার ব্যবহার করেন তবে এই লাইনটি প্রথমে বাদ দেওয়া উচিত। তারপরে যদি কোনও শব্দ লাইনটি পিছনে না ফেলে। তবুও যদি কোন শব্দ না হয়, ভাল খুশি শিকার!

দুটি নেট টিভি নিউজ শোতে আমি নেট দেখি তার স্বাভাবিকের চেয়ে বেশি নরম ভলিউম থাকে তাই আমার কাছে টিভিটি স্বাভাবিকের চেয়ে বেশি হয়ে গেছে। ফলস্বরূপ যখন ogg123সাউন্ড ফাইলগুলি প্লে করে তারা খুব জোরে শোনায়। তাই pactlচিমের আগে ভলিউম হ্রাস করতে এবং এটি পরে বাড়ানোর জন্য ব্যবহৃত হয়।

ঘন্টার চিমের নীচের বিষয়বস্তু

এটি প্রায় একটি নকল top-of-hour-chimeএবং সম্ভবত এখানে অনর্থক, কিন্তু সম্পূর্ণ ডকুমেন্টেশন উদ্দেশ্যে অন্তর্ভুক্ত।

#! /bin/bash

# NAME: bottom-of-hour-chime
# PATH: /usr/local/bin
# DESC: Play sound called by cron
# CALL: Automatically called by /var/spool/cron/crontabs/<user_name>
# DATE: Oct 1, 2016. Modified June 10, 2018.

# UPDT: 2018-06-10 Switch from `ogg123` to `paplay` installed by default.

# exit # Uncomment to suppress when watching movies.

# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"

pactl set-sink-volume 0 -25%
paplay /usr/share/sounds/ubuntu/ringtones/Bliss.ogg
pactl set-sink-volume 0 +25%

1

এই রফতানি ব্যবহার করেও:

# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"

এটা কাজ করে না।

কয়েক মাস গবেষণার পরেও কোনও সমাধান পাওয়া গেল না।

হতাশায়, নিম্নলিখিতগুলি চেষ্টা করে দেখুন:

নিম্নলিখিতটি লিখুন

# Terminal command: crontab -e
# Detect the name of the display in use
display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
user=$(who | grep '('$display')' | awk '{print $1}') # the user of the display 
uid=$(id -u $user) #Detect the id of the user

XDG_RUNTIME_DIR=/run/user/${uid}

*/5 * * * * sh /root/.play_sound.sh

পরবর্তী তৈরি করুন .play_sound.sh

/root/.play_sound.sh

display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
user=$(who | grep '('$display')' | awk '{print $1}') # the user of the display 
uid=$(id -u $user) #Detect the id of the user

su - $user -c "paplay /usr/share/sounds/freedesktop/stereo/complete.oga"

আশাকরি এটা সাহায্য করবে.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.