分类: 技术

  • 查看linux系统的开机时间/重启历史记录

    1、who -b命令 [root@rusky opt]# who -b —查看最后一次(上次)系统启动的时间 system boot Dec 27 05:06

    2、who -r命令 [root@rusky opt]# who -r —查看最后一次(上次)系统启动的时间,及运行级别 run-level 5 Dec 27 05:06

    3、last reboot命令

    [root@rusky opt]# last reboot
    reboot system boot 2.6.32-358.el6.x Sat Dec 27 05:06 - 16:07 (4+11:00)
    reboot system boot 2.6.32-358.el6.x Wed Nov 5 20:00 - 16:07 (55+20:06)
    reboot system boot 2.6.32-358.el6.x Mon Oct 13 14:00 - 19:15 (23+05:15)
    reboot system boot 2.6.32-358.el6.x Sat Oct 11 09:14 - 13:59 (2+04:44)
    reboot system boot 2.6.32-358.el6.x Thu Oct 9 05:40 - 09:13 (2+03:32)
    reboot system boot 2.6.32-358.el6.x Wed Oct 8 21:48 - 05:40 (07:51)
    reboot system boot 2.6.32-358.el6.x Wed Oct 8 20:08 - 21:48 (01:39)
    reboot system boot 2.6.32-358.el6.x Wed Oct 8 16:29 - 20:08 (03:38)
    reboot system boot 2.6.32-358.el6.x Wed Oct 8 16:24 - 16:27 (00:02)
    reboot system boot 2.6.32-358.el6.x Mon Sep 29 18:59 - 16:23 (8+21:24)
    reboot system boot 2.6.32-358.el6.x Sun Sep 28 22:02 - 18:58 (20:56)
    reboot system boot 2.6.32-358.el6.x Sun Sep 28 20:18 - 22:01 (01:42)
    reboot system boot 2.6.32-358.el6.x Sun Sep 28 20:14 - 20:17 (00:02)
    reboot system boot 2.6.32-358.el6.x Sun Sep 28 20:12 - 20:17 (00:04)
    
    wtmp begins Sun Sep 28 20:12:54 2014
    5、top命令 up后表示系统到目前运行了多久时间。反过来推算系统重启时间 [root@rusky opt]# top top – 16:10:12 up 4 days, 11:05, 4 users, load average: 0.00, 0.00, 0.00 Tasks: 421 total, 1 running, 420 sleeping, 0 stopped, 0 zombie …… 6、w命令 up后表示系统到目前运行了多久时间。反过来推算系统重启时间 [root@rusky opt]# w 16:47:16 up 4 days, 11:42, 3 users, load average: 0.00, 0.00, 0.00 7、uptime命令及查看/proc/uptime
    [root@rusky opt]# uptime
    16:47:53 up 4 days, 11:42, 3 users, load average: 0.00, 0.00, 0.00
    
    [root@rusky opt]# date -d "`cut -f1 -d. /proc/uptime` seconds ago" --查看最近一次系统重启的时间
    Sat Dec 27 05:05:12 CST 2014
    
    [root@rusky opt]# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S" 
    2014-12-27 05:05:12
  • supervisord 执行配置环境变量

    Supervisord 是一个进程管理工具,它可以用来启动、重启、停止进程,并且可以监控进程,当进程异常退出时自动重启。

    要在 Supervisord 中执行配置环境变量,你需要编辑 Supervisord 的配置文件。这个文件通常被命名为 supervisord.conf 或者在 Supervisor 的配置目录中。

    在 supervisord.conf 文件中,你可以为每个程序单独配置环境变量。这些环境变量将会在该程序启动时被设置。

    以下是一个配置环境变量的例子:

    [program:myapp]
    command=/usr/bin/myapp
    environment=ENV1="value1",ENV2="value2"
    user=myuser
    

    在这个例子中,程序 myapp 将会接收环境变量 ENV1 和 ENV2。这些环境变量的值分别是 value1 和 value2

    如果你需要为所有的程序设置全局环境变量,你可以在 [supervisord] 部分设置 environment 选项:

    [supervisord]
    environment=ENV1="value1",ENV2="value2"
    
    

    在这种情况下,所有的子进程都会接收这些环境变量。

    记得在做完更改后,需要重启 Supervisord 以使配置生效:

    sudo supervisorctl reread
    sudo supervisorctl update
    sudo supervisorctl restart
  • 如何使用AWS SDK for PHP操作Minio Server

    1. 前提条件

    这里下载并安装Minio Server。

    2. 安装

    AWS SDK for PHP官方文档下载将安装aws-sdk-php

    3. 使用GetObject和PutObject

    下面示例描述的是如何使用aws-sdk-php对Minio Server进行putObject和getObject操作。请将 example.php文件中的endpoint,keysecretBucket修改为你的本地配置。注意,我们将use_path_style_endpoint设置为true以使用AWS SDK for PHP来操作Minio。了解更多,请参考AWS SDK for PHP

    1. <? php
    2. // 使用Composer autoloader引入SDK
    3. date_default_timezone_set ( 'America/Los_Angeles' );
    4. require 'vendor/autoload.php' ;
    5. $s3 = new Aws \S 3 \S 3Client ([
    6. 'version' => 'latest' ,
    7. 'region' => 'us-east-1' ,
    8. 'endpoint' => 'http://localhost:9000' ,
    9. 'use_path_style_endpoint' => true ,
    10. 'credentials' => [
    11. 'key' => 'YOUR-ACCESSKEYID' ,
    12. 'secret' => 'YOUR-SECRETACCESSKEY' ,
    13. ],
    14. ]);
    15. // 发送PutObject请求并获得result对象
    16. $insert = $s3 -> putObject ([
    17. 'Bucket' => 'testbucket' ,
    18. 'Key' => 'testkey' ,
    19. 'Body' => 'Hello from Minio!!'
    20. ]);
    21. // 下载文件的内容
    22. $retrive = $s3 -> getObject ([
    23. 'Bucket' => 'testbucket' ,
    24. 'Key' => 'testkey' ,
    25. 'SaveAs' => 'testkey_local'
    26. ]);
    27. // 通过索引到结果对象来打印结果的body。
    28. echo $retrive [ 'Body' ];

    修改之后,运行程序

    1. php example . php
    2. Hello from Minio !!

    4. 生成pre-signed URL

    1. <? php
    2. // 从client中获得一个commad对象
    3. $command = $s3 -> getCommand ( 'GetObject' , [
    4. 'Bucket' => 'testbucket' ,
    5. 'Key' => 'testkey'
    6. ]);
    7. // 获得一个10分钟有效期的pre-signed URL
    8. $presignedRequest = $s3 -> createPresignedRequest ( $command , '+10 minutes' );
    9. // 获得presigned-url
    10. $presignedUrl = ( string ) $presignedRequest -> getUri ();

    5. 获取plain URL

    获取一个plain URL,你需要将你的object/bucket权限设为public。注意,你不会获得带有后面这些信息的URL, X-Amz-Algorithm=[…]&X-Amz-Credential=[…]&X-Amz-Date=[…]&X-Amz-Expires=[…]&X-Amz-SignedHeaders=[…]&X-Amz-Signature=[…]

    1. <? php
    2. $plainUrl = $s3 -> getObjectUrl ( 'testbucket' , 'testkey' );

    6. 设置存储桶策略

    1. <? php
    2. $bucket = 'testbucket' ;
    3. // 该策略设置存储桶为只读
    4. $policyReadOnly = '{
    5. "Version": "2012-10-17",
    6. "Statement": [
    7. {
    8. "Action": [
    9. "s3:GetBucketLocation",
    10. "s3:ListBucket"
    11. ],
    12. "Effect": "Allow",
    13. "Principal": {
    14. "AWS": [
    15. "*"
    16. ]
    17. },
    18. "Resource": [
    19. "arn :aws :s3:::%s"
    20. ],
    21. "Sid": ""
    22. },
    23. {
    24. "Action": [
    25. "s3:GetObject"
    26. ],
    27. "Effect": "Allow",
    28. "Principal": {
    29. "AWS": [
    30. "*"
    31. ]
    32. },
    33. "Resource": [
    34. "arn :aws :s3:::%s /*"
    35. ],
    36. "Sid": ""
    37. }
    38. ]
    39. }
    40. ' ;
    41. // 如果你想将文件放到指定目录,你只需要修改'arn:aws:s3:::%s/*'为' arn: aws:s3:::%s/folder/*'
    42. // 创建一个存储桶
    43. $result = $s3 -> createBucket ([
    44. 'Bucket' => $bucket ,
    45. ]);
    46. // 配置策略
    47. $s3 -> putBucketPolicy ([
    48. 'Bucket' => $bucket ,
    49. 'Policy' => sprintf ( $policyReadOnly , $bucket , $bucket ),
    50. ]);
    原文: https://docs.minio.io/cn/how-to-use-aws-sdk-for-php-with-minio-server.html
  • Microsoft Office 2021免费永久激活教程(附:微软官方下载地址、离线激活工具)

    Microsoft Office 2021免费永久激活教程(附:微软官方下载地址、离线激活工具)

    1,问题描述

      有时新购买的电脑带的是未激活的 Office,或者当我们使用微软官方的安装包安装 Office 后,如果没有密钥进行激活,窗口上方会显示“产品通知 Word 未激活。若要无中断地继续使用 Word,请在 XXXX 年 XX 月 XX 日之前激活。”提示。
    2024061611422992311

    2,免费激活方法

    (1)确保电脑正常联网,鼠标右键点击“开始”选择“Windows PowerShell(管理员)”。如果 Win11 系统则选择“终端管理员”。
    2024031610345045047
    (2)在弹出的终端窗口中输入如下命令,然后回车执行:
    1
    irm https:// massgrave.dev /get  | iex
  • PostgreSQL数据库的安装配置教程(CentOS系统为例)

    PostgreSQL 被业界誉为“世界上最先进的开源关系型数据库”,虽然 PostgreSQL 是关系型数据库,但其也支持 NoSQL 数据类型(JSON/XML/hstore),并且性能甚至超过了 MongoDB。本文演示如何在 CentOS 7 系统下安装配置 PostgreSQL 数据库。

    1,安装 PostgreSQL

    (1)首先访问官方的下载页面(点击访问),选择合适的版本:
    2021031115365563670
    (2)根据页面上的说明安装 rpm 文件:
    1
    sudo yum install -y https: //download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  • Docker – 通过容器安装部署PostgreSQL数据库

      PostgreSQL 被业界誉为“世界上最先进的开源关系型数据库”,并且它同时还支持 NoSQL 数据类型(JSON/XML/hstore)。我在之前的文章中介绍了如何使用官方安装程序进行 PostgreSQL 数据库的安装(点击查看),本文介绍另一种方式:通过 Docker 来快速搭建 PostgreSQL 数据库环境。

    1,拉取镜像

    首先执行如下命令将镜像下载到本地:
    1
    docker pull postgres

    2,启动容器

    (1)执行如下命令实例化 PostgreSQL 服务:
    参数说明:
    • -d:表示在后台启动容器;
    • -p 5432:5432:容器内部的 5432 端口映射主机的 5432 端口;
    • –name postgresql:将容器命名为 postgresql
    • -v /home/user/pgdata:/var/lib/postgresql/data:挂载目录,其中 /home/user/pgdata 是宿主机的目录
    • -e POSTGRES_PASSWORD=123:数据库 postgres 密码设置为 123
    1
    docker run -d -p 5432:5432 --name=postgresql -v /home/user/pgdata:/ var /lib/postgresql/data -e POSTGRES_PASSWORD=123 postgres
    (2)执行 docker ps 命令确认容器启动成功:
    202103111838232658

    3,开放端口

    如果服务器开启了防火墙的话,还要执行如下命令开放端口:
    1
    2
    firewall-cmd --permanent --add-port=5432/tcp
    firewall-cmd --reload

    4,连接测试

    (1)我们使用客户端工具(比如 Navicat),输入相关信息后连接:
    2021031116464481954
    (2)连接成功后就可以看到相关数据了:
    2021031116474945760

    原文出自:www.hangge.com  转载请保留原文链接:https://www.hangge.com/blog/cache/detail_3073.html

  • Docker – 实现本地镜像的导出、导入(export、import、save、load)

    有时我们需要将一台电脑上的镜像复制到另一台电脑上使用,除了可以借助仓库外,还可以直接将镜像保存成一个文件,再拷贝到另一台电脑上导入使用。

        对于镜像的导出和导入,Docker 提供了两种方案,下面分别进行介绍。

    一、使用 export 和 import

    1,查看本机的容器

    这两个命令是通过容器来导入、导出镜像。首先我们使用 docker ps -a 命令查看本机所有的容器。
    2019050717392713580

    2,导出镜像

    (1)使用 docker export 命令根据容器 ID 将镜像导出成一个文件。
    1
    docker export f299f501774c > hangger_server.tar
  • 郝鸿峰年度演讲

    郝鸿峰年度演讲

    [embed]http://local.houlijiang.cn:9000/media/MzKqZmy_20240828213448.mp4[/embed]

    是创业者的基因,每一次引「爆」都是对市场深刻的理解和对酒友的珍视与敬畏。2024#郝鸿峰年度演讲 ,群星闪耀,共襄盛举。

  • 在Docker中轻松运行FFmpeg:命令与文档指南

    随着多媒体内容在互联网上的日益普及,视频处理工具变得越来越重要。FFmpeg作为一款强大的开源多媒体处理工具,广泛应用于视频编解码、转换、流处理等场景。为了在Docker环境中轻松运行FFmpeg,本文将为您提供详细的启动命令和文档指南。

    首先,确保您已经成功安装了Docker。您可以通过运行 docker version命令来验证安装是否成功。接下来,在Docker Hub上搜索ffmpeg关键字,找到相应的镜像。这里,我们推荐使用jrottenberg/ffmpeg镜像,因为它提供了丰富的功能和稳定的性能。

    一、拉取FFmpeg镜像

    在终端中运行以下命令,从Docker Hub拉取 jrottenberg/ffmpeg镜像:

    1. docker pull jrottenberg / ffmpeg

    二、运行FFmpeg容器

    使用以下命令启动一个FFmpeg容器。这里,我们将 /path/to/input/path/to/output分别指定为宿主机上的输入和输出文件夹路径。<ffmpeg command>是您要执行的FFmpeg具体命令,根据实际需求进行替换。

    1. docker run - it -- rm - v / path / to / input :/ input - v / path / to / output :/ output jrottenberg / ffmpeg < ffmpeg command >

    例如,如果您想将输入文件夹中的 myfile.avi转换为VCD格式的视频文件,并保存到输出文件夹中,可以使用以下命令:

    1. docker run - it -- rm - v / path / to / input :/ input - v / path / to / output :/ output jrottenberg / ffmpeg - i / input / myfile . avi - target vcd / output / vcd . mpg

    三、FFmpeg命令参数详解

    FFmpeg支持丰富的命令参数,以满足各种视频处理需求。以下是一些常用的命令参数及其说明:

    • -f fmt:指定输出文件的格式。
    • -I filename:指定输入文件。
    • -y:覆盖输出文件。
    • -t duration:设置记录时间,格式为hh:mm:ss[.xxx]
    • -ss position:搜索到指定的时间,格式为[-]hh:mm:ss[.xxx]
    • -title string:设置标题。
    • -author string:设置作者。
    • -copyright string:设置版权信息。
    • -comment string:设置评论。
    • -target type:设置目标文件类型(如vcd、svcd、dvd),所有的格式选项(比特率、编解码以及缓冲区大小)将自动设置。

    四、验证处理结果

    运行FFmpeg命令后,您可以使用本地的播放器或其他工具来验证处理结果是否符合预期。如果一切正常,您应该能在输出文件夹中看到转换后的视频文件。

    总结

    通过本文的介绍,您应该已经了解了如何在Docker中轻松运行FFmpeg,并掌握了相关的命令和文档。FFmpeg作为一款强大的多媒体处理工具,能够帮助您轻松处理各种视频任务。希望本文对您有所帮助,如有任何疑问或建议,请随时联系我们。

  • Linux nohup 命令

    nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

    nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

    使用权限

    所有使用者

    语法格式

     nohup 
    Command [ Arg  ] [ & ]

    参数说明:

    Command:要执行的命令。

    Arg:一些参数,可以指定输出文件。

    &:让命令在后台执行,终端退出后命令仍旧执行。

    实例

    以下命令在后台执行 root 目录下的 runoob.sh 脚本:

    nohup 
    /
    root
    /
    runoob
    .
    sh 
    &

    在终端如果看到以下输出说明运行成功:

    appending output to nohup
    .
    out

    这时我们打开 root 目录 可以看到生成了 nohup.out 文件。

    如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:

    ps 
    -
    aux 
    |
     grep 
    "runoob.sh"

    参数说明:

    • a : 显示所有程序
    • u : 以用户为主的格式来显示
    • x : 显示所有程序,不区分终端机

    另外也可以使用 ps -def | grep "runoob.sh" 命令来查找。

    找到 PID 后,就可以使用 kill PID 来删除。

    kill 
    -
    9  进程号
    PID

    以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:

    nohup 
    /
    root
    /
    runoob
    .
    sh 
    >
     runoob
    .
    log 
    2
    >&
    1 &
    

    2>&1 解释:

    将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

    • 0 – stdin (standard input,标准输入)
    • 1 – stdout (standard output,标准输出)
    • 2 – stderr (standard error,标准错误输出)