linux下自动化任务的例子——定时播放音乐
- 格式:pdf
- 大小:88.92 KB
- 文档页数:2
Linux系统定时任务调度脚本Linux系统提供了一种强大而灵活的方式来自动化任务的执行,即通过定时任务调度脚本。
这些脚本可以按照预定的时间间隔或时间点来运行,从而实现自动化操作。
本文将介绍Linux系统定时任务调度脚本的使用方法和实例。
一、定时任务调度的基本概念在Linux系统中,crontab命令是用于管理定时任务调度的工具。
通过编辑crontab文件,我们可以设置执行特定命令或脚本的时间计划。
crontab文件的内容按照一定的规则进行编辑,以确保脚本能够按照预定的时间执行。
二、创建定时任务调度脚本定时任务调度脚本可以使用任意文本编辑器创建,例如使用vi编辑器打开一个空白的文件:```shellvi myscript.sh```在脚本文件中,我们可以编写需要自动执行的命令或脚本代码。
以下是一个简单的示例:```shell#!/bin/bashecho "Hello, World!"```上述脚本会输出一条"Hello, World!"的消息。
请注意,第一行的`#!/bin/bash`是用于指定脚本使用的解释器,这里使用的是Bash。
三、设置定时任务调度要将脚本添加到定时任务调度中,我们需要编辑用户的crontab文件。
可以通过以下命令进行编辑:```shellcrontab -e```此命令将打开crontab文件,并使用默认的文本编辑器进行编辑。
我们可以在文件末尾添加定时任务的配置。
要设置定时任务,我们需要遵循特定的格式。
以下是一个示例:```shell* * * * * /path/to/myscript.sh```这个示例中的五个星号(*)分别代表分钟、小时、日期、月份和星期几。
通常我们使用星号(*)来代表“任意值”,这样脚本就会在每分钟都执行。
四、定时任务调度实例在实际应用中,我们需要根据具体的需求来设置定时任务调度。
以下是一些常见的实例:1. 每天的凌晨2点执行脚本:```shell0 2 * * * /path/to/myscript.sh```2. 每周五下午4点30分执行脚本:```shell30 16 * * 5 /path/to/myscript.sh```3. 每月的1号和15号的上午10点执行脚本:```shell0 10 1,15 * * /path/to/myscript.sh```以上是一些简单的示例,您可以根据实际需求进行配置。
基于Linux的音乐播放器设计与实现基于Linux的音乐播放器设计与实现专业:计算机科学与技术学号:学生:指导教师:摘要:作为一项与人们生活息息相关的应用,音乐播放器在人们的生活中发挥着不可替代的作用。
本播放器在Linux(Debian 6.0)操作系统平台下进行开发,使用Qt程序开发框架实现播放器的GUI设计,并用Phonon多媒体API实现多媒体控制,最后再用C++编程实现。
本播放器实现了音乐播放器的基本功能,包括“播放”、“暂停”、“上一曲”、“下一曲”、“添加文件”、“删除文件”、“切换背景图标”、“最小化到托盘”等功能。
测试表明,本播放器能够流畅地运行,并能很好地实现各项功能,并且有一定的容错能力,达到了设计预期的效果。
同时,本播放器在稳定性、经济成本等方面都有不错的表现。
关键词:音乐播放器;Linux;Qt;PhononThe Design and Implementation of Music PlayerBased on LinuxSpecialty: Student Number:Student: Supervisor:Abstract:As an application, which is closely related to the people's lives, music player plays an irreplaceable role in people's life. This Music player is developed under Linux (Debian 6.0) operating system with the Qt application development framework implementing theplayer's GUI design. Phonon multimedia APIs is used for multimedia control and at last coded by C++ programming language. The music player has realized basic functions of ordinary music player,including 'Play' function, 'Pause' function, 'Previous track' function, 'Next track' function, 'Add files' function, 'Delete files' function, 'Switch background icon' function, 'Minimize to tray' function and so on. The testing results show that the player can run smoothly and realize all of functions mentioned before. The player is provided with fault tolerance as well. To sum up, the player achieves the design's expected result. At the same time, the music player has a well performance in operational stability and economic cost.Key words:Music player; Linux;Qt; Phonon绪论随着经济的发展,人类社会发生了翻天覆地的变化,人民生活水平得到了提高,生活节奏变得更快,人们在精神上的需求甚至超过了物质上的需求,而音乐便是他们精神生活中不可缺少的一部分。
在Linux终端中使用cron定时执行任务Linux操作系统提供了一种强大的工具,即cron,它允许用户在指定的时间间隔内自动执行任务。
使用cron,可以轻松地实现定时备份文件、更新系统、执行脚本等操作。
一、了解cronCron是一种用于定时运行命令或脚本的工具,它在后台运行,并根据预先设置的时间表执行任务。
在Linux终端中,可以通过编辑crontab文件来管理cron的任务列表。
二、编辑crontab文件要编辑crontab文件,可以使用以下命令:```crontab -e```这将打开一个文本编辑器,显示当前用户的cron表。
每一行代表一个计划任务,由时间表达式和要执行的命令组成。
三、时间表达式cron使用时间表达式来定义任务的执行时间。
时间表达式由五个不同的字段组成,分别表示分钟、小时、日期、月份和星期。
这些字段使用空格或者通配符来表示。
- 星号(*)表示所有可能的值,例如在分钟字段中,*表示每分钟都执行。
在其他字段中,*表示所有可能的值。
- 逗号(,)用于分隔枚举值,例如"1,3,5"表示1、3和5。
- 减号(-)用于指定一个范围,例如"1-5"表示1到5。
- 正斜杠(/)用于指定间隔,例如"*/10"表示每10分钟。
- 除号(/)用于指定除法,例如"5/15"表示从第5分钟开始,每隔15分钟执行一次。
四、实例以下是一个示例crontab文件,展示了如何使用cron来定时执行任务:```# 每天凌晨3点备份文件0 3 * * * /usr/bin/backup.sh# 每小时更新系统0 * * * * /usr/bin/update.sh# 每周一清理日志文件0 0 * * 1 /usr/bin/clean_logs.sh```在上述示例中,每天凌晨3点备份文件的任务被安排在第一行。
通过指定执行时的分钟位为0,小时位为3,其余时间位使用星号代替,就可以实现在每天的3点运行任务。
在Linux系统中使用Python编写定时任务脚本在Linux系统上,我们可以使用Python编写定时任务脚本来自动执行特定的操作。
定时任务可以用于定期备份数据、清理系统垃圾、发送邮件等各种常见的任务。
本文将介绍如何在Linux系统中使用Python编写和管理定时任务脚本。
一、理解定时任务的概念定时任务是指在特定的时间点或时间间隔内自动执行的任务。
在Linux系统中,我们通过cron服务来实现定时任务的调度和执行。
cron 服务可以让我们按照预定的时间规则执行特定的任务。
二、编写Python脚本首先,我们需要编写一个Python脚本,用于执行我们想要自动化的任务。
例如,我们要编写一个脚本用于备份指定目录下的文件。
下面是一个简单的备份脚本示例:```python#!/usr/bin/env pythonimport osimport shutilfrom datetime import datetime# 备份目录backup_dir = '/path/to/backup'# 要备份的目录source_dir = '/path/to/source'# 备份文件名backup_file = 'backup_' +datetime.now().strftime('%Y%m%d%H%M%S') + '.tar.gz'# 创建备份目录os.makedirs(backup_dir, exist_ok=True)# 执行备份shutil.make_archive(os.path.join(backup_dir, backup_file), 'gztar', source_dir)```以上脚本使用`shutil`模块实现了文件备份的功能。
我们可以根据实际需求编写更复杂的脚本。
三、设置定时任务为了让脚本自动执行,我们需要将其设置为定时任务。
在Linux中使用crontab命令设置定时任务在Linux操作系统中,我们可以使用crontab命令来设置定时任务。
Crontab是Linux下的一个定时执行工具,能够在指定的时间自动执行特定的任务,非常方便实用。
本文将介绍如何在Linux中使用crontab命令来设置定时任务。
1. 查看已有的定时任务在开始设置定时任务之前,我们可以先查看系统中已有的定时任务,以便了解当前的任务状态。
可以通过运行以下命令来查看:```crontab -l```该命令将列出当前用户的所有定时任务。
如果当前用户没有设置任何定时任务,则不会有任何输出。
2. 编辑定时任务要编辑已有的定时任务或新增一个定时任务,可以使用以下命令:```crontab -e```该命令将会打开一个文本编辑器,其中已经包含了当前用户的所有定时任务。
每一行对应一个定时任务,通过编辑、新增和删除这些任务来实现定时任务的管理。
3. 设置定时任务的格式每个定时任务都有一个固定的格式,该格式由五个字段组成,分别表示分钟、小时、日期、月份和星期几。
这些字段以空格或制表符分隔,如下所示:```* * * * * command```- 第一个字段表示分钟,取值范围为0-59,可以使用通配符“*”表示每分钟执行。
- 第二个字段表示小时,取值范围为0-23,使用通配符“*”表示每小时执行。
- 第三个字段表示日期,取值范围为1-31,使用通配符“*”表示每天执行。
- 第四个字段表示月份,取值范围为1-12,使用通配符“*”表示每月执行。
- 第五个字段表示星期几,取值范围为0-7(0和7都表示星期日),使用通配符“*”表示每周执行。
在以上五个字段之后,还需跟上要执行的命令或脚本路径。
下面是一些定时任务的示例:- 每天凌晨三点清理/tmp目录下的临时文件:```0 3 * * * rm -rf /tmp/*```- 每隔五分钟检查系统负载情况:```*/5 * * * * uptime```- 每个工作日的上午九点给所有用户发送一封提醒邮件:```0 9 * * 1-5 echo "Don't forget today's meeting!" | mail -s "Meeting Reminder" *```4. 保存并退出在编辑定时任务完成后,按下键盘上的Ctrl键加字母X,然后按下Y键以保存修改,再按下回车键来保存并退出编辑器。
Linux系统定时任务脚本Linux系统是一种开源的操作系统,具有高度的灵活性和可定制性。
通过定时任务脚本,用户可以自动执行一系列任务,如备份数据、定期清理文件等。
本文将介绍Linux系统中定时任务脚本的使用方法和注意事项。
一、什么是定时任务脚本定时任务脚本是一种自动执行的脚本,可以在预定的时间点或时间间隔内自动运行。
在Linux系统中,常用的定时任务工具是cron。
cron使得用户能够按照指定的时间执行命令或脚本,无需手动操作。
二、定时任务脚本的语法在Linux系统中,定时任务脚本的语法如下所示:```* * * * * command```其中,五个星号分别代表分钟、小时、每月第几天、月份和星期几。
使用这些通配符,可以定制每个字段所允许的取值范围。
以下是一些示例:- `0 1 * * * /usr/bin/backup.sh` 表示在每天凌晨1点执行`backup.sh`脚本。
- `30 2 * * 1-5 /usr/bin/cleanup.sh` 表示在每周一至周五凌晨2点30分执行`cleanup.sh`脚本。
三、创建定时任务脚本要创建一个定时任务脚本,可以按照以下步骤进行操作:1. 打开终端或远程登录到Linux系统。
2. 使用命令`crontab -e`编辑用户的定时任务列表。
3. 在文本编辑器中,按照前面提到的语法编写定时任务脚本。
注意要使用绝对路径来指定脚本的位置,以免发生路径错误的问题。
4. 保存并退出文本编辑器。
四、常见问题和注意事项在编写定时任务脚本时,需要注意以下几点:1. 定时任务脚本需要有可执行权限。
可以通过`chmod +x script.sh`命令为脚本添加执行权限。
2. 在定时任务脚本中,建议使用绝对路径来引用其他文件或命令,以免出现路径错误的情况。
3. 定时任务脚本的输出通常被发送到系统邮件中。
为了避免邮件被过多发送,可以使用重定向将输出保存到文件中,或将其发送给特定的邮件地址。
嵌入式课程设计报告—在Linux下开发音乐播放器李荣贵141578一.概述按课程要求,在Linux环境下开发了一款简易的音乐播放器软件,名为“Mini音乐播放器”,运用工具如下:操作系统:虚拟机中安装xubuntu-14.04.1IDE:QT Creator3.0.1该播放器具有如下功能:1.从本地导入歌曲到歌曲列表中2.清空歌曲列表3.删除歌曲列表中选中的歌曲4.用进度条显示歌曲播放的进度,并显示时间5.用“播放/暂停”、“停止”、“上一曲”、“下一曲”四个按钮对歌曲进行控制6.用滑动器对歌曲音量进行控制7.右键会弹出菜单,可以对程序进行相应的控制二.项目展示1.虚拟机截图2.项目开发界面3.软件发行后运行情况隐藏界面部件后三.程序设计源码分析接下来展示源代码中的核心代码,其中包括头文件以及cpp文件中的构造函数,源代码我已经上传到网上,有需要的可以下载,链接: /s/1eQgwlUU。
widget.h-----------------------------------------------------------------------------------------#ifndef WIDGET_H#define WIDGET_H#include<QWidget>#include<QMediaPlayer>#include<QMediaPlaylist>namespace Ui{class Widget;}class Widget:public QWidget{Q_OBJECTpublic:explicit Widget(QWidget*parent=0);~Widget();private slots:void addSongs();//该槽函数功能是从本地导入音乐文件void playPause();//该槽函数是用来响应“播放/暂停”按钮void playStop();//该槽函数是用来响应“停止”按钮void playNext();//该槽函数是用来响应“下一曲”按钮void playPrevious();//该槽函数是用来响应“上一曲”按钮void posChanged(qint64pos);//当歌曲播放进度变化时,该槽函数响应,功能是让进度条与歌曲播放进度保持一致void durChanged(qint64dur);//该槽函数功能是当歌曲总长度改变(即切歌)时,设置进度条最大值为歌曲长度(以ms为单位)void setPos(int pos);//该槽函数功能是当拖动进度条改变进度时,设置歌曲的播放进度与之保持一致void clearList();//清空歌曲列表void delectSong();//删除歌曲列表中选中的歌曲void volumeSilence();//响应点击音量按钮,进而设置静音/正常void setV ol(int vol);//拖动音量滑动条时,设置歌曲音量与之保持一致void hideShow();//隐藏/显示界面上的部件void redV olume();//减小音量void addV olume();//增大音量private:Ui::Widget*ui;private:QMediaPlayer*player;//QT中提供的用来保存源文件的类,该类提供大量API供调用QMediaPlaylist*playList;//QT提供的保存播放文件的队列//以下均为弹出菜单中动作QAction*action_hideShow;QAction*action_addSongs;QAction*action_playPause;QAction*action_stop;QAction*action_previous;QAction*action_next;QAction*action_addVolume;QAction*action_redV olume;QAction*action_quit;protected:void contextMenuEvent(QContextMenuEvent*);//该函数为虚函数,对其进行重写,可实现右键单击界面时弹出菜单};#endif//WIDGET_HWidget.cpp-----------------------------------------------------------------------------------------#include"widget.h"#include"ui_widget.h"#include<QFileDialog>#include<QString>#include<QStringList>#include<QMenu>Widget::Widget(QWidget*parent):QWidget(parent),ui(new Ui::Widget){ui->setupUi(this);//下面几行作用是插入一张图片到播放器界面作为背景this->setAutoFillBackground(true);QPalette palette;palette.setBrush(QPalette::Background,QBrush(QPixmap(":/images/inter face.jpg")));this->setPalette(palette);ui->volumeSlider->setRange(0,100);this->setWindowTitle(tr("mini音乐播放器"));this->playList=new QMediaPlaylist(this);this->player=new QMediaPlayer(this);player->setPlaylist(playList);//将player与playList连接player->setV olume(50);ui->volumeSlider->setValue(50);//以下几行设置按钮的属性ui->addSongsButton->setStyleSheet("QPushButton{border-radius:5px;bo rder-width:0px;}");ui->clearButton->setStyleSheet("QPushButton{border-radius:5px;border-width:0px;}");ui->delectButton->setStyleSheet("QPushButton{border-radius:5px;borde r-width:0px;}");ui->volumeButton->setStyleSheet("QToolButton{border-radius:5px;bord er-width:0px;}");//信号与槽的连接QObject::connect(ui->volumeSlider,SIGNAL(valueChanged(int)),this,SLOT(setVol(int)));QObject::connect(ui->addSongsButton,SIGNAL(clicked()),this,SLOT(ad dSongs()));QObject::connect(ui->playPauseButton,SIGNAL(clicked()),this,SLOT(pl ayPause()));QObject::connect(ui->stoptButton,SIGNAL(clicked()),this,SLOT(playSt op()));QObject::connect(ui->previousButton,SIGNAL(clicked()),this,SLOT(pla yPrevious()));QObject::connect(ui->nextButton,SIGNAL(clicked()),this,SLOT(playNe xt()));QObject::connect(player,SIGNAL(durationChanged(qint64)),this,SLOT( durChanged(qint64)));QObject::connect(player,SIGNAL(positionChanged(qint64)),this,SLOT( posChanged(qint64)));QObject::connect(ui->processSlider,SIGNAL(valueChanged(int)),this,SL OT(setPos(int)));QObject::connect(ui->clearButton,SIGNAL(clicked()),this,SLOT(clearLi st()));QObject::connect(ui->delectButton,SIGNAL(clicked()),this,SLOT(delect Song()));QObject::connect(ui->volumeButton,SIGNAL(clicked()),this,SLOT(volumeSilence()));//设置按钮属性ui->stoptButton->setStyleSheet("border:2px groovegray;border-radius:10px;padding:2px4px;");ui->playPauseButton->setStyleSheet("border:2px groovegray;border-radius:10px;padding:2px4px;");ui->previousButton->setStyleSheet("border:2px groovegray;border-radius:10px;padding:2px4px;");ui->nextButton->setStyleSheet("border:2px groovegray;border-radius:10px;padding:2px4px;");//构造相应的动作,用于右键弹出对话框action_hideShow=new QAction(tr("隐藏/显示窗口部件"),this); QObject::connect(action_hideShow,SIGNAL(triggered()),this,SLOT(hide Show()));action_addSongs=new QAction(tr("添加本地歌曲"),this);action_addSongs->setShortcut(tr("Ctrl+I"));QObject::connect(action_addSongs,SIGNAL(triggered()),this,SLOT(add Songs()));action_playPause=new QAction(tr("播放/暂停"),this);action_playPause->setShortcut(tr("Ctrl+Enter"));QObject::connect(action_playPause,SIGNAL(triggered()),this,SLOT(pla yPause()));action_stop=new QAction(tr("停止"),this);action_stop->setShortcut(tr("Ctrl+S"));QObject::connect(action_stop,SIGNAL(triggered()),this,SLOT(playStop() ));action_previous=new QAction(tr("上一曲"),this);action_previous->setShortcut(tr("Ctrl+Left"));QObject::connect(action_previous,SIGNAL(triggered()),this,SLOT(play Previous()));action_next=new QAction(tr("下一曲"),this);action_next->setShortcut(tr("Ctrl+Right"));QObject::connect(action_next,SIGNAL(triggered()),this,SLOT(playNext ()));action_addVolume=new QAction(tr("音量+(5%)"),this);action_addVolume->setShortcut(tr("Ctrl+Up"));QObject::connect(action_addV olume,SIGNAL(triggered()),this,SLOT(ad dV olume()));action_redV olume=new QAction(tr("音量-(5%)"),this);action_redV olume->setShortcut(tr("Ctrl+Down"));QObject::connect(action_redV olume,SIGNAL(triggered()),this,SLOT(red Volume()));action_quit=new QAction(tr("退出"),this);QObject::connect(action_quit,SIGNAL(triggered()),this,SLOT(close())); }-----------------------------------------------------------------------------------------四.课程设计总结由于对Linux系统不熟悉,并且是第一次开发音乐播放器类软件,在开发过程中遇到了很多问题,有些问题在网上不能找到有效的解决办法,需要自己认真思考。
Linux终端中的音频和视频处理命令在Linux操作系统中,终端是一个非常强大和灵活的工具,它可以通过命令行界面执行各种任务,包括音频和视频处理。
本文将介绍一些常用的Linux终端中的音频和视频处理命令,帮助您在命令行下进行多媒体文件的编辑和转换。
音频处理命令:1. FFmpeg:FFmpeg是一个功能强大的开源音视频处理工具。
它可以通过命令行对音频进行剪辑、变速、混音等操作。
以下是一些常用的FFmpeg命令:- 剪辑音频:ffmpeg -ss [start_time] -i [input_file] -t [duration] [output_file]- 变速处理:ffmpeg -i [input_file] -filter:a "atempo=[speed]" [output_file]- 音频混音:ffmpeg -i [input_file1] -i [input_file2] -filter_complex amix=inputs=2:duration=first:dropout_transition=3 [output_file]2. SoX:SoX是一个强大的开源音频处理工具。
它可以用于音频格式转换、音频合并、音频特效等操作。
以下是一些常用的SoX命令: - 音频格式转换:sox [input_file] [output_file]- 音频合并:sox [input_file1] [input_file2] [output_file]- 添加音频特效:sox [input_file] [output_file] [effect]视频处理命令:1. FFmpeg:除了音频处理,FFmpeg也可以用于视频处理。
以下是一些常用的FFmpeg命令:- 视频剪辑:ffmpeg -ss [start_time] -i [input_file] -t [duration] [output_file]- 视频转换:ffmpeg -i [input_file] -c:v [video_codec] -c:a[audio_codec] [output_file]- 视频拼接:ffmpeg -i [input_file1] -i [input_file2] -filter_complex "[0:v:0][1:v:0]concat=n=2:v=1:a=0[outv]" -map "[outv]" [output_file]2. HandBrake:HandBrake是一个开源的视频转码工具。
Linux定时任务管理脚本使用Python编写的定时任务工具Linux操作系统中的定时任务管理是一项重要的任务,它能够自动地执行一系列预定的任务,提高运维效率和系统的稳定性。
本文将介绍Linux定时任务管理脚本,以及使用Python编写的定时任务工具。
一、Linux定时任务管理脚本的作用和原理定时任务指的是在预定的时间点或时间间隔内执行特定的任务。
Linux定时任务管理脚本是一种自动化运维工具,通过编写脚本来控制各个任务的执行时间和频率。
它的作用是减轻系统管理员的工作负担,提高运维效率。
Linux定时任务管理脚本的原理是通过crontab命令来实现的。
Crontab是一个用于管理系统定时任务的命令,它能够帮助我们在特定的时间点自动执行任务。
用户可以通过编辑crontab文件,添加或删除任务,修改任务的执行时间和频率。
二、使用Python编写的定时任务工具Python是一种简单易学、功能强大的编程语言,广泛应用于各个领域。
在Linux定时任务管理中,我们可以使用Python编写定时任务工具,实现更复杂和灵活的任务控制。
Python提供了多种处理时间的库,如datetime、time等,可以方便地获取当前时间、计算时间差等操作。
结合crontab命令,我们可以使用Python编写定时任务工具的逻辑代码,并通过调用系统命令来执行任务。
以下是一个简单的示例,展示了使用Python编写的定时任务工具的实现代码:```pythonimport datetimeimport osdef execute_task():# 在此处编写具体的任务代码passif __name__ == "__main__":current_time = datetime.datetime.now()# 判断当前时间是否符合任务执行的条件if current_time.minute % 10 == 0: # 每10分钟执行一次任务execute_task()```在上述示例中,我们通过获取当前时间,并判断是否符合任务执行的条件。
Linux系统定时任务脚本使用Shell脚本实现对Linux系统的定时任务调度和执行在Linux系统中,我们经常需要执行定时任务来完成一些自动化的工作,例如定期备份数据、定时清理临时文件等。
而在Linux系统中,我们可以使用Shell脚本来实现对定时任务的灵活控制和调度。
本文将介绍如何使用Shell脚本在Linux系统中实现定时任务的调度和执行。
一、Shell脚本基础在开始介绍定时任务的使用之前,我们首先需要了解一些Shell脚本的基础知识。
Shell脚本是一种以Shell(命令行解释器)为解释器的脚本语言,用于批处理任务和自动化操作。
在Linux系统中,我们可以使用各种Shell脚本编写工具,例如Bash、Sh、Csh等。
Shell脚本主要由命令、变量、条件判断、循环等组成。
我们可以使用Shell脚本来执行各种操作,例如创建文件、修改文件权限、运行程序等。
而对于定时任务,我们可以使用Shell脚本来编写一段特定的代码,然后在指定的时间点进行执行。
二、定时任务的调度在Linux系统中,我们可以通过使用crontab命令来实现定时任务的调度。
crontab是一个用于设置定时任务的命令,它可以让我们方便地进行任务的调度和执行。
1. 编写定时任务脚本首先,我们需要编写一个定时任务脚本。
这个脚本可以包含我们想要执行的一系列任务,例如备份数据、清理临时文件等。
下面是一个简单的定时任务脚本示例:```shell#!/bin/bash# 备份数据cp /data/*.txt /backup# 清理临时文件rm -rf /tmp/*```在这个脚本中,我们使用cp命令来将`/data`目录下的所有txt文件复制到`/backup`目录中,然后使用rm命令来清空`/tmp`目录下的所有文件。
2. 编辑crontab任务表接下来,我们需要编辑crontab任务表,将我们编写的定时任务脚本添加到任务列表中。
我们可以使用以下命令来编辑crontab任务表:```shellcrontab -e```编辑任务表时,我们可以按照一定的格式来设置定时任务的执行时间和任务命令。
如何在Linux上设置定时任务在Linux上设置定时任务是管理和自动化任务执行的重要工作。
通过设置定时任务,可以在指定的时间点自动执行一系列命令或脚本,提高工作效率和操作的准确性。
本文将介绍如何在Linux系统上设置定时任务,并提供简单的实例帮助读者理解和应用。
一、任务调度工具-crontabLinux系统中常用的任务调度工具是crontab。
crontab是一个用来在固定的时间间隔执行命令的工具,可以设置并管理各种定时任务。
下面介绍crontab的基本使用方法。
1. 查看当前用户的定时任务列表为了查看当前用户的定时任务列表,打开终端窗口并输入以下命令:```crontab -l```这样就可以显示当前用户的定时任务列表。
2. 编辑定时任务列表为了编辑定时任务列表,打开终端窗口并输入以下命令:```crontab -e```这样就可以打开一个文本编辑器,并在其中编辑定时任务列表。
每一行代表一个定时任务,格式如下:```* * * * * command```其中,5个*分别代表分钟、小时、日期、月份和星期几,command 为要执行的命令或脚本。
例如,若要每天早上8点执行一个脚本文件`script.sh`,则可以在定时任务列表中添加一行:```0 8 * * * /path/to/script.sh```3. 定时任务示例下面列举一些常见的定时任务设置示例,供读者参考。
①每天凌晨1点执行备份脚本`backup.sh`:```0 1 * * * /path/to/backup.sh```②每周五下午4点30分重启服务器:```30 16 * * 5 /sbin/reboot```③每2小时清理临时目录`/tmp`中的文件:```0 */2 * * * rm -rf /tmp/*```以上只是一些简单的示例,读者可以根据自己的需求灵活设置和调整。
二、定时任务配置文件-cron.d除了使用crontab工具,还可以通过修改cron.d目录下的定时任务配置文件来设置定时任务。
一.实验目的1.掌握Linux平台下软件开发的基本流程和方法。
2.掌握Linux平台下的C++程序设计。
3.掌握Linux平台下的QT开发工具。
二.实验环境1.硬件环境:微机2.软件环境:RedHat三.实验内容通过本次实验熟悉Linux系统,并在Linux系统上进行相关开发。
我们小组是以QT作为开发工具,以C++来编写程序,在Linux系统下开发一个音频播放器。
播放器的主要功能有:播放MP3文件、显示歌曲相关信息、播放时间显示、进度条显示、音量调节、上一曲、下一曲等。
以下是实现主要功能的代码:#include"Audio_player.h"static int fd;int tm =0; //分钟int ts =0; //秒audio_player::audio_player(QWidget *parent, Qt::WindowFlags f): QDialog(parent, f){QPalette p = this->palette();p.setColor(QPalette::Window,Qt::white); //设置背景色this->setPalette(p);timer = new QTimer(this);mainLayout = new QGridLayout(this);keyLayout = new QHBoxLayout();mp3Title = new QLabel;mp3Art = new QLabel;mp3Album = new QLabel;mp3Time = new QLabel;mp3Length = new QLabel;mp3Length->setText("04:23");p.setColor(QPalette::WindowText,Qt::red); //设置前景色mp3Title->setPalette(p);mp3Art->setPalette(p);mp3Album->setPalette(p);mp3Time->setPalette(p);mp3Length->setPalette(p);start = new QToolButton; //开始start->setText(tr("start"));start->setIcon(QPixmap("/home/miwu/mp3/images/start.png"));start->setIconSize(QPixmap("/home/miwu/mp3/images/start.png").size()); start->setAutoRaise(TRUE);start->setToolButtonStyle(Qt::ToolButtonIconOnly);up = new QToolButton; //上一曲up->setText(tr("up"));up->setIcon(QPixmap("/home/miwu/mp3/images/previous.png"));up->setIconSize(QPixmap("/home/miwu/mp3/images/previous.png").size()); up->setAutoRaise(TRUE);up->setToolButtonStyle(Qt::ToolButtonIconOnly);down = new QToolButton; //下一曲down->setText(tr("down"));down->setIcon(QPixmap("/home/miwu/mp3/images/next.png"));down->setIconSize(QPixmap("/home/miwu/mp3/images/next.png").size()); down->setAutoRaise(TRUE);down->setToolButtonStyle(Qt::ToolButtonIconOnly);slider = new QSlider(Qt::Horizontal); //音量slider->setMinimum(40);slider->setMaximum(120);slider->setValue(80);slider->setTickPosition(QSlider::TicksBelow);p.setColor(QPalette::Window,Qt::green);slider->setPalette(p);keyLayout->addWidget(mp3Time);keyLayout->addWidget(up);keyLayout->addWidget(start);keyLayout->addWidget(down);keyLayout->addWidget(mp3Length);mainLayout->addWidget(mp3Title,0,0,Qt::AlignHCenter);mainLayout->addWidget(mp3Art,1,0,Qt::AlignHCenter);mainLayout->addWidget(mp3Album,2,0,Qt::AlignHCenter);mainLayout->addWidget(slider,3,0);mainLayout->addLayout(keyLayout,4,0);connect(start,SIGNAL(clicked()),this,SLOT(slotOpen()));connect(up,SIGNAL(clicked()),this,SLOT(slotUp()));connect(down,SIGNAL(clicked()),this,SLOT(slotDown()));connect(slider,SIGNAL(valueChanged(int)),SLOT(slotGetV ol()));connect(timer,SIGNAL(timeout()),this,SLOT(slotShowTime()));fd =::open("/dev/mixer", O_RDWR); //打开mixer设备,用于音量调节if (fd == - 1){perror("unable to open /dev/mixer");exit(1);}QDir dir("/mnt/udisk/mp3");filePath = tr("/mnt/udisk/mp3/"); //设置播放目录musicList = dir.entryList(QDir::Files,QDir::Name); //遍历播放目录下的所有歌曲nCount = musicList.size(); //获得歌曲数目fileName = static_cast<QString>(musicList.at(0)); //提取歌曲名称command=tr("madplay ");backend = tr(" &"); //后台播放setWindowTitle(tr("Madplayer")); //设置窗口名称slotStart(); //开始播放this->sizeHint();}void audio_player::slotOpen(){QFileDialog fileDilog(this); //建立文件对话框QStringList openList;fileDilog.setFileMode(QFileDialog::AnyFile);fileDilog.setDirectory (trUtf8("/mnt/udisk/mp3"));fileDilog.setNameFilter(trUtf8("*.mp3")); //仅显示.mp3 文件fileDilog.setViewMode(QFileDialog::List); //以list方式显示fileDilog.resize(320,240); //对话框尺寸if (fileDilog.exec())openList =fileDilog.selectedFiles();fileName = static_cast<QString>(openList.at(0)); //获取歌曲路径和名称fileName.remove(0,15); //移除15个字符的路径,得到歌曲名system("killall -9 madplay"); //关闭madplay 进程slotStart();}int flag =1;void audio_player::slotShowTime(){char disp_buf[5];FILE *out;char str[30];ts++;if(ts >= 60) {tm++;ts = 0;}if(tm >= 60) {tm = 0;ts = 0;}sprintf(disp_buf,"%02d:%02d",tm,ts);QString text = disp_buf;mp3Time->setText(text); //显示时间/*查看当前进程列表中是否有madplay 进程存在,如果不存在,说明当前歌曲播放完毕,则启动播放下一曲*/system("ps |pgrep -l madplay >/usr/run.dat");out = fopen ("/usr/run.dat", "r");fread (str, sizeof (str), 1, out);// printf("%s\n\r",str);if(str[0]<48 ) slotDown();fclose (out);}void audio_player::slotGetV ol(){int usr_volume;usr_volume = slider->value(); //设置音量大小ioctl(fd,MIXER_WRITE(0),&usr_volume); //调节音量void audio_player::slotStart(){char *S;readInfo(fileName);tm =0;ts =0;if(flag!=1){system("killall -9 madplay");flag = 1;}else{flag=0;QString command_full = command;command_full.append(filePath);command_full.append(fileName);command_full.append(backend);S = (command_full.toAscii()).data();printf("%s\n\r",S);timer->start(1000); //设置定时器的时间为一秒system(S);}}void audio_player::slotUp(){QString command_full = command;system("killall -9 madplay"); //停止播放当前歌曲index = musicList.indexOf(fileName); //获取当前歌曲索引index--; //获取上一曲索引if(index < 0)index = nCount-1;/* 根据上一曲索引找到上一曲文件名*/fileName = static_cast<QString>(musicList.at(index));flag = 1;slotStart(); //播放}void audio_player::slotDown(){QString command_full = command;system("killall -9 madplay");index = musicList.indexOf(fileName);index++;if(index >(nCount-1))index = 0;fileName = static_cast<QString>(musicList.at(index));flag = 1;slotStart();}void audio_player::Tag_GetTrailer(void){fseek(fp,-128L,SEEK_END);fread(Mp3Trailer.Header,3,1,fp);fseek(fp,-125L,SEEK_END);fread(Mp3Trailer.Title,30,1,fp);fseek(fp,-95L,SEEK_END);fread(Mp3Trailer.Artist,30,1,fp);fseek(fp,-65L,SEEK_END);fread(Mp3Trailer.Album,30,1,fp);fseek(fp,-35L,SEEK_END);fread(Mp3Trailer.Year,4,1,fp);fseek(fp,-31L,SEEK_END);fread(ment,28,1,fp);fseek(fp,-1L,SEEK_END);fread(Mp3Trailer.Cenre,1,1,fp);}/* 读取mp3文件ID3标签*/void audio_player::Tag_GetHeader(void){fseek(fp,0,SEEK_SET);fread(Mp3Header.Header,sizeof(Mp3Header.Header),1,fp);fseek(fp,3,SEEK_CUR);fread(&Mp3Header.ver,sizeof(Mp3Header.ver),1,fp);fseek(fp,4,SEEK_CUR);fread(&Mp3Header.Revision,sizeof(Mp3Header.Revision),1,fp);fseek(fp,5,SEEK_CUR);fread(&Mp3Header.Flag,sizeof(Mp3Header.Flag),1,fp);fseek(fp,6,SEEK_CUR);fread(Mp3Header.Size,sizeof(Mp3Header.Size),1,fp);}/* 获取mp3文件信息*/void audio_player::readInfo(QString file){QString local_ch;char *S;QString file_full = filePath;file_full.append(file);S = (file_full.toAscii()).data();/* 以二进制格式打开当前文件进行分析*/if((fp=fopen(S,"rb"))==NULL){printf("ERROR:can't open the file!");getchar();exit(1);}Tag_GetTrailer();Tag_GetHeader();QString sbuf;sbuf = (tr(Mp3Trailer.Title)).section(" " ,0,0);mp3Title->setText(tr("%1").arg(sbuf,0)); //mp3文件标题sbuf = (tr(Mp3Trailer.Artist)).section(" ",0,1);mp3Art->setText(tr("%1").arg(sbuf,0)); //mp3 Artistsbuf = (tr(Mp3Trailer.Album)).section(" ",0,1);mp3Album->setText(tr("%1").arg(sbuf,0)); //mp3 Albumfclose(fp);}。
如何在Linux终端中定时执行任务在Linux终端中,我们可以使用各种命令和工具来定时执行任务。
这在自动化任务、数据备份、系统监控等方面非常有用。
本文将介绍几种在Linux终端中定时执行任务的方法。
一、使用Cron定时任务Cron是一种常用的定时任务管理工具,可以在预定的时间间隔内定时运行脚本或命令。
我们可以通过编辑Cron表来设置任务的执行时间。
以下是使用Cron设置定时任务的步骤:1. 打开终端,并使用以下命令编辑Cron表:```crontab -e```2. 在打开的编辑器中,设置任务的执行时间和要执行的命令。
例如,以下是每天凌晨3点执行一个脚本的示例:```0 3 * * * /path/to/script.sh```其中,0表示分钟,3表示小时,*表示任意日期和月份,最后的路径是要执行的脚本或命令的路径。
3. 保存并关闭编辑器。
Cron会自动生效并开始按照设定的时间执行任务。
二、使用at命令执行一次性任务除了定时任务,有时我们还需要在未来的某个时间点执行一次性任务。
在这种情况下,可以使用at命令。
以下是使用at命令设置一次性任务的步骤:1. 打开终端,并使用以下命令打开at任务队列:```at -q <时间队列> -f <脚本文件>```其中,<时间队列>表示任务执行的时间,可以使用12小时或24小时制,并指定日期和时间。
例如,要在下午2点执行任务,可以使用"2pm"或"14:00",<脚本文件>表示要执行的脚本文件路径。
2. 编辑脚本文件,写入要执行的命令或脚本,保存并关闭文件。
3. 返回终端,确认无误后按Ctrl+D提交任务到at队列中。
任务将在指定的时间执行。
三、使用systemd定时器在一些较新的Linux发行版中,使用systemd定时器也是一种定时执行任务的方法。
相比于Cron,systemd定时器提供了更精确的时间控制和更灵活的配置选项。
Linux命令技巧实现自动化任务调度自动化任务调度是现代IT运维中十分重要的一环,它可以提高工作效率,降低人为操作带来的错误风险。
而在Linux系统中,我们可以通过一些命令技巧来实现自动化任务调度,本文将介绍其中几个常用的方法。
1. crontab命令crontab命令是Linux系统下的定时任务管理工具。
通过编辑crontab 文件,我们可以配置需要定时执行的任务。
具体操作步骤如下:首先,打开终端,输入命令 crontab -e 打开当前用户的crontab配置文件。
然后,在文件的末尾添加需要定时执行的任务,格式为:分钟小时日期月份星期要执行的命令例如,如果我们想每天的早上7点执行一个备份脚本,可以添加如下行:0 7 * * * /path/to/backup.sh最后,保存并退出文件。
crontab将会自动生效。
2. at命令at命令是另一个常用的任务调度工具,它可以用于在指定的时间执行一次性任务。
与crontab命令不同,at命令适合于那些仅需执行一次的任务。
以下是使用at命令执行任务的步骤:在终端中输入命令 at 时间,其中时间可以是绝对时间,也可以是相对时间。
按照提示,输入要执行的命令或脚本。
按Ctrl+D保存并退出。
任务会在指定的时间自动执行。
3. systemd定时任务对于使用systemd作为init系统的Linux发行版,我们可以利用systemd的timer来实现任务调度。
systemd的timer是基于systemd unit 的一种定时调度机制。
以下是配置systemd定时任务的步骤:首先,在指定的目录下创建一个.timer后缀的文件,例如mytask.timer。
在该文件中,定义任务的时间间隔和要执行的命令或脚本。
再创建一个与.timer文件同名的.service文件,用于指定要执行的任务。
最后,使用systemctl命令启动timer并使其生效。
4. shell脚本的定时任务除了使用系统工具外,我们还可以编写Shell脚本,并通过命令行工具进行调度。
Linux终端命令之计划任务和定时执行计划任务和定时执行是Linux终端命令中的一个重要功能。
它允许用户在特定的时间点或者间隔执行指定的命令或脚本,以实现自动化任务的目的。
在本文中,将介绍Linux中常用的计划任务和定时执行的命令以及它们的用法和注意事项。
一、计划任务的命令1. crontab命令:crontab是一个用于设置和管理计划任务的命令。
通过编辑crontab 文件,用户可以指定特定的执行时间和要执行的命令。
crontab文件是存储用户计划任务的地方,每个用户都有自己的crontab文件。
2. at命令:at命令可以用来在特定的时间执行一次性任务。
它和crontab命令类似,但是只执行一次。
用户可以使用at命令指定执行时间和要执行的命令。
二、定时执行的命令1. sleep命令:sleep命令可以用于暂停当前脚本或命令的执行一段指定的时间。
它的用法很简单,只需要指定要暂停的时间长度,单位可以是秒、分钟、小时。
2. timeout命令:timeout命令可以用于设置命令的执行时间限制。
如果命令在指定时间内没有执行完毕,timeout命令会强制终止该命令的执行。
三、计划任务和定时执行的使用示例1. 使用crontab命令设置计划任务:用户可以通过crontab命令编辑自己的crontab文件,添加要执行的命令和执行时间。
例如,要在每天的凌晨3点执行一个脚本,可以使用以下命令:```crontab -e```然后在打开的编辑器中添加以下内容:```0 3 * * * /path/to/script.sh```这个示例中,0 3 * * * 表示每天的凌晨3点,/path/to/script.sh 是要执行的脚本的路径。
2. 使用at命令执行一次性任务:at命令的使用方法很简单,只需要指定要执行的时间和要执行的命令即可。
例如,要在2分钟后执行一个命令,可以使用以下命令:```echo "要执行的命令" | at now + 2 minutes```这个示例中,"要执行的命令"表示要执行的命令,"now + 2 minutes"表示2分钟后执行。
linux播放音乐命令linux下要怎么才能播放音乐呢?下面由店铺为大家整理了linux播放音乐命令的相关知识,希望大家喜欢!linux播放音乐方法一现在我们可以先安装一个小软件,然后通过命令行来使用这个软件播放音乐。
这个软件的名字叫:SOX,支持很多格式的音频文件,如WAV,MP3,MPG,OGG,FLAC 等等。
满足我们日常使用是足够足够的了。
好了,首先,第一步我们需要把它安装到我们的系统里。
1、打开一个终端(Ctrl+Alt+T),然后输入如下命令:sudo apt-get install sox2、给系统安装软件需要管理员密码。
输入密码后回车。
3、在安装的时候询问你是否继续的时候输入 Y 来确认继续安装。
4、好了,只要等待它完成安装就可以了。
完成安装以后,我们就可以通过下面的命令来让 SOX 可以播放它所支持的音频格式文件:sudo apt-get install sox libsox-fmt-all5、好了,现在可以使用SOX 来播放我们计算机里的音频文件了。
6、比如要播放系统中所有音频文件,我们可以采用这个命令:play *mp37、如果要播放某个特定的文件,那么采用这个命令:play file-name.extension比如:play Aqua_Barbie_Girl.mp3可以只播放 Aqua_Barbie_Girl.mp3 这 MP3。
8、在播放的时候,我们可以按下Ctrl+C 来终端当前音频的播放转到下一个音频。
9、关于更多的 SOX 的操作命令我们可以使用 man 命令来查看详细的介绍。
希望大家能有所发现。
man soxlinux播放音乐方法二在linux下也同样有播放音乐的软件,包括桌面式的音乐播放软件,这些桌面软件在Linux社区都能找到,在pc机上或者根文件系统稍微正式一点的开发板上,都会安装有alsa软件,这是一个audio的软件,包含播放,录音的功能,还有调节音量,音色,音质的功能,这功能如何在终端使用命令执行:播放: $ aplay musicdemo.wmv录音: $ arecord -c 2 -r 44100 -f S16_LE musicdemo.wmv调节音量大小: $ alsamixer然后就会出现字符形式的图形界面,使用四个方向键就可以进行调节具体这三个命令怎么使用,都有什么样的选项,可以使用man去寻求帮助。
linux下自动化任务的例子在linux系统中实现作业的自动化是非常便利的。
比较常用的是Cron服务的crontab这个命令。
⼀一个具体的任务列表这个是学校室外广播的自动程序,只用了⼀一台被废弃的塞羊800的学生机,安装的系统是红旗linux,其他的linux、FreeBSD、unix或者是MacOS都可以。
将Cron设为自动运行。
chkconfig –level 35 crond on进入系统终端键入:crontab -u caizhongyi -e(crontab为命令,“-u cai”是指定执行作业的系统用户为cai,“-e”使用crontab自己的vi编辑器,防止出现编码或系统环境问题造成的错误)然后在编辑器(vi编辑器)中输入如下命令:0 7 * * 1 mpg123 -q /home/cai/guangbo/001.mp321 8 * * 1 mpg123 -q /home/cai/guangbo/11.mp321 8 * * 2 mpg123 -q /home/cai/guangbo/21.mp321 8 * * 3 mpg123 -q /home/cai/guangbo/31.mp321 8 * * 4 mpg123 -q /home/cai/guangbo/41.mp321 8 * * 5 mpg123 -q /home/cai/guangbo/51.mp316 9 * * 2 mpg123 -q /home/cai/guangbo/212.mp316 9 * * 3 mpg123 -q /home/cai/guangbo/312.mp316 9 * * 4 mpg123 -q /home/cai/guangbo/412.mp316 9 * * 5 mpg123 -q /home/cai/guangbo/512.mp325 10 * * 1 mpg123 -q /home/cai/guangbo/12.mp325 10 * * 2 mpg123 -q /home/cai/guangbo/22.mp325 10 * * 3 mpg123 -q /home/cai/guangbo/32.mp325 10 * * 4 mpg123 -q /home/cai/guangbo/42.mp325 10 * * 5 mpg123 -q /home/cai/guangbo/52.mp341 13 * * 1 mpg123 -q /home/cai/guangbo/13.mp341 13 * * 2 mpg123 -q /home/cai/guangbo/23.mp341 13 * * 3 mpg123 -q /home/cai/guangbo/33.mp341 13 * * 4 mpg123 -q /home/cai/guangbo/43.mp341 13 * * 5 mpg123 -q /home/cai/guangbo/53.mp336 14 * * 1 mpg123 -q /home/cai/guangbo/14.mp336 14 * * 2 mpg123 -q /home/cai/guangbo/24.mp336 14 * * 3 mpg123 -q /home/cai/guangbo/34.mp336 14 * * 4 mpg123 -q /home/cai/guangbo/44.mp336 14 * * 5 mpg123 -q /home/cai/guangbo/54.mp331 15 * * 1 mpg123 -q /home/cai/guangbo/15.mp331 15 * * 2 mpg123 -q /home/cai/guangbo/25.mp331 15 * * 3 mpg123 -q /home/cai/guangbo/35.mp331 15 * * 4 mpg123 -q /home/cai/guangbo/45.mp3命令解释:21 8 * * 1 mpg123 -q /home/cai/guangbo/11.mp3每周⼀一8点21分,开始在后台(-q)用mpg123解码器播放 /home/cai/ guangbo目录下的11.mp3文件。
Linux下基于命令行的音乐播放器利用最近项目通宵发布的空闲时间中,写了一个命令行下的音乐播放器,以满足我在linux命令下的需求。
接下来是小编为大家收集的Linux下基于命令行的音乐播放器,欢迎大家阅读:Linux下基于命令行的音乐播放器播放器利用技术:Python+GST(/modules/gst -python.html)+Console解析播放器自持操作:1. 播放2. 下一首3. 上一首4. 暂停5. 查看播放列表信息6. 查看当前播放信息7. 停止(退出)看一张截图:通过分析meliae dump出来的内存信息,差不做占用2.5M内存,算的上比较小巧了。
对应代码:(需要安装py-gst,ubuntu下:sudo apt-get install python-gst0.10)1 #!/usr/bin/env python23 import gst4 import gobject5 import sys6 #to avoid eclipsewarning7 eval(gobject.threads_init())8 from threading import Thread910 class AudioPlayer:1112 EVENT_PLAY_NEW = 11314 def __init__(self, advisor):15 self.main = gobject.MainLoop()16 self.player = gst.element_factory_make(playbin, player)17 self.index = -118 self.list = None19 self.advisor = advisor2021 bus = self.player.get_bus()22 bus.add_signal_watch()23 bus.connect(message, self.on_message)2425 Thread(target=self.main.run).start()2627 def add_list(self , list=[]):28 if list is None:29 list = []30 self.list = [(i, l.strip(), l[l.rfind(/看了“Linux下基于命令行的音乐播放器”还想看:kali linux未找到命令。
使⽤树莓派打造⼀个⾳乐播放器买了个树莓派3B+,装好系统后灰落了好厚⼀层都不知道要⼲嘛。
最近突发奇想:⽤树莓派做⼀个⾳乐播放器,每天6:30-7:20⾃动播放英语听⼒,强迫⾃⼰练习英语,也治治⾃⼰的懒床习惯,平时也可以⽤来听听歌。
准备⼯作:1.树莓派⼀个,并且⼰安装好linux系统,并且⼰安装好Python3环境;2.⾳箱⼀个(AUX有线接⼝或蓝⽛⾳箱都⾏),连接到树莓派上;软件环境搭建:是⼀个⽤python写的⾳乐播放器,在gitee和github上开源,主要⽤命令⾏进⾏控制,这个很适合我们这个需求。
⾸先我们在电脑上⽤ssh⼯具(我⽤的putty)登陆到树莓派,不会的可以另⾏百度树莓派ssh教程。
输⼊以下命令:cd /usrcd mtoolln -s -f /usr/mtool/mtoolctl /usr/bin/mtool #创建软链接(快捷⽅式)然后安装mtool依赖包:pygame,configparser(有的话就不⽤安装了)sudo apt install python3-pygamepip3 install configparser⾄此,mtool就算安装完成了。
mtool是⼀个C/S(服务器/客户端)模式的程序,服务器开启后会监听UDP端⼝(默认为127.0.0.1:6666),然后接受来⾃客户端的命令去控制播放。
我再来设置⼀下服务器端的开机⾃启动:vim ~/.bashrc在最后⾯添加命令:nohup mtool --server start > /usr/mtool/log & #其中nohup与&⽤于后台运⾏程序配置⾳乐⽂件夹路径先来配置⼀下⾳乐⽂件夹的位置,打开/usr/mtool/mtool.conf,在⾥⾯⾃⾏修改:[player] #这个节设置播放器参数list = music #设置默认的播放列表,列表名必须在后⾯的playlists节中出现volume = 0.2 #默认⾳量port = 6666 #默认UDP端⼝,⽤于服务器接受命令index = 2 #当前播放位置next = next #默认播放模式:next|loop|random 对应顺序播放|单曲循环|随机播放[playlists] #播放列表预设节,可设置多个,格式为:列表名=⽂件夹路径music = music #播放列表名为music,路径为./musicen-listen = /var/share/en-listen #我的英语听⼒资源⽂件的路径开始使⽤mtool命令source ~/.bashrc或nohup mtool --server start > /usr/mtool/log &#先⼿动启动服务端,虽然前⾯配置了开机⾃启动,但也只能下次开机才能⽣效mtool -c info #查看服务器状态,可⽤来测试服务器是否⼰启动,成攻类似如下显⽰:mtool -c play #播放mtool -c vol=0.5 #设置⾳量mtool -c lists #查看可⽤的播放列表mtool -c list #列出当前播放列表中的⾳乐⽂件mtool -c next=random|next|loop #设置播放顺序mtool -c playf=zui #切换为单曲循环(next=loop),并且播放⽂件名中包含zui的⽂件基本的⽤法就这样了,我们可以通过在电脑上控制树莓派播放⾳乐了,但是电脑⽼开着也不好,况且躺在床上怎么办呢?我们可以在⼿机上安装ssh⼯具,⽐如JuiceSSH(推荐),阿⾥云app。
linux下自动化任务的例子
在linux系统中实现作业的自动化是非常便利的。
比较常用的是Cron服务的crontab这个命令。
⼀一个具体的任务列表
这个是学校室外广播的自动程序,只用了⼀一台被废弃的塞羊800的学生机,安装的系统是红旗linux,其他的linux、FreeBSD、unix或者是MacOS都可以。
将Cron设为自动运行。
chkconfig –level 35 crond on
进入系统终端
键入:
crontab -u caizhongyi -e
(crontab为命令,“-u cai”是指定执行作业的系统用户为cai,“-e”使用crontab自己的vi编辑器,防止出现编码或系统环境问题造成的错误)然后在编辑器(vi编辑器)中输入如下命令:
0 7 * * 1 mpg123 -q /home/cai/guangbo/001.mp3
21 8 * * 1 mpg123 -q /home/cai/guangbo/11.mp3
21 8 * * 2 mpg123 -q /home/cai/guangbo/21.mp3
21 8 * * 3 mpg123 -q /home/cai/guangbo/31.mp3
21 8 * * 4 mpg123 -q /home/cai/guangbo/41.mp3
21 8 * * 5 mpg123 -q /home/cai/guangbo/51.mp3
16 9 * * 2 mpg123 -q /home/cai/guangbo/212.mp3
16 9 * * 3 mpg123 -q /home/cai/guangbo/312.mp3
16 9 * * 4 mpg123 -q /home/cai/guangbo/412.mp3
16 9 * * 5 mpg123 -q /home/cai/guangbo/512.mp3
25 10 * * 1 mpg123 -q /home/cai/guangbo/12.mp3
25 10 * * 2 mpg123 -q /home/cai/guangbo/22.mp3
25 10 * * 3 mpg123 -q /home/cai/guangbo/32.mp3
25 10 * * 4 mpg123 -q /home/cai/guangbo/42.mp3
25 10 * * 5 mpg123 -q /home/cai/guangbo/52.mp3
41 13 * * 1 mpg123 -q /home/cai/guangbo/13.mp3
41 13 * * 2 mpg123 -q /home/cai/guangbo/23.mp3
41 13 * * 3 mpg123 -q /home/cai/guangbo/33.mp3
41 13 * * 4 mpg123 -q /home/cai/guangbo/43.mp3
41 13 * * 5 mpg123 -q /home/cai/guangbo/53.mp3
36 14 * * 1 mpg123 -q /home/cai/guangbo/14.mp3
36 14 * * 2 mpg123 -q /home/cai/guangbo/24.mp3
36 14 * * 3 mpg123 -q /home/cai/guangbo/34.mp3
36 14 * * 4 mpg123 -q /home/cai/guangbo/44.mp3
36 14 * * 5 mpg123 -q /home/cai/guangbo/54.mp3
31 15 * * 1 mpg123 -q /home/cai/guangbo/15.mp3
31 15 * * 2 mpg123 -q /home/cai/guangbo/25.mp3
31 15 * * 3 mpg123 -q /home/cai/guangbo/35.mp3
31 15 * * 4 mpg123 -q /home/cai/guangbo/45.mp3
命令解释:21 8 * * 1 mpg123 -q /home/cai/guangbo/11.mp3
每周⼀一8点21分,开始在后台(-q)用mpg123解码器播放 /home/cai/ guangbo目录下的11.mp3文件。
两个星号为年月的通配符。
双谴双非。