① 微信接口怎么用linux应用实现推送消息现在微信接口要钱吗
大家都想做这东西
狗日的腾讯就是不提供这个功能
现在的微信只有公众账号接口,只能别人给你的接口发一条微信消息,你才能回一条,不能主动发消息。。
还有一个基本的接口是认证的接口,300元认证一次,在别人给你主动发一条消息后,12小时内,你可以给这个人主动发消息。
但是像招商银行、中国联通等账号确可以主动发消息,那样的高级接口又不让随便申请。除非你是大企业。
② 如何推送给linux嵌入式开发板一条消息
首先你的嵌入式开发板上需要有接受推送的服务,如mqtt或者websocket之类的服务程序,然后推送端的服务器上需要有相应的推送客户端服务程序就可以,一般都是开源的代码,只需配置好配置文件及推送的内容即可
③ 如何在Linux中备份,恢复和迁移Docker容器
1. 备份凳茄嫌容器
首先,为了备份Docker中的容器,我们会想看看我们想要备份的容器列表。要达成该目的,我们需要在我们运行着Docker引擎,并已创建了容器的Linux机器中运行 docker ps 命令。
# docker ps
Docker Containers List
在此之后,我们要选择我们想要备份的容器,然后去创建该容器的快照。我们可以使用 docker commit 命令来创建快照。
# docker commit -p 30b8f18f20b4 container-backup
Docker Commit
该命令会生成一个作为Docker镜像的容器快照,我们可以通过运行 docker images 命令来查看Docker镜像,如下。
# docker images
Docker Images
正如我们所看见的,上面做的快照已经作为Docker镜像保存了。现在,为了备份该快照,我们有两个选择,一个是我们可以登录进Docker注册中心,并推送该镜像;另一个是我们可以将Docker镜像打包成tar包备份,以供今后使用。
如果我们想要在Docker注册中心上传或备份镜像,我们只需要运行 docker login 命令来登录进Docker注册中心,然后推送所需的镜像即可。
# docker login
Docker Login
# docker tag a25ddfec4d2a arunpyasi/container-backup:test
# docker push arunpyasi/container-backup
Docker Push
如果我们不想备份到docker注册中心纳首,而是想要将此镜像保存在本地机器中,以供日后使用,那么我们可以将其作为tar包备份。要完成该操作,我们需要运行以下 docker save 命令。
# docker save -o ~/container-backup.tar container-backup
taking tarball backup
要验证tar包是否已经生成,我们只需要在保存tar包的目录中运枣手行 ls 命令即可。
2. 恢复容器
④ 如何在Linux下使用Git
Git是一款开源分布式版本控制系统,能够帮助Linux管理内核开发,那么Linux要如何使用Git,下面就是Linux使用Git的方法:
*初始化git仓库,使用git init命令
*添加文件到git仓库分两步:
1、使用git add filename ;可分多次使用,添加多个文件到暂存区
2、使用git commit -m “说明” ;完成提交到分支
*查看工作区状态,使用git status 命令;如果提示有修改可使用git diff filename 查看修改内容
*HEAD指向当前版本,HEAD^表示上一个版本,HEAD^^上上一个版本……HEAD~100指向之前第100个版本。
*回退版本:使用git log查看提交历史;使用git log --pretty=oneline 精简显示
使用git reset --hard commit_id 回退到版本号为commit_id的版本
*回退版本之后如果想再看改回来,可以使用git reflog 查看历史命令,找出想改回的版本号,再使用git reset hard commit_id 返回即可。
*注意:git跟踪并管理的是修改,而不是文件,如果一个文件修改并add之后,再次修改,如果不再次add就提交的话,只会提交第一次的修改。
*撤销修改:
1、如果文件还在工作区,即没有add也没有commit,则使用git checkout -- filename 还原到服务器版即可;
2、如果已经add到暂存区,首先使用git reset HEAD filename从暂存区取回工作区,再按照1进行操作即可;
3、如果已经提交到版本库,则按照版本回退的方式进行修改即可;
4、如果已经push到远程仓库,就麻烦了
*删除使用以下命令:
1、git rm filename 从工作区删除
2、git commit -m ”说明“ 更新分支中文件进行删除
将在工作区的文件删除之后,可以使用git checkout -- filename 从分支中取回,但是只能恢复文件到最新版本,最后一次提交之后的修改则不能恢复。
*分支:
1、创建分支
git checkout -b branchname 创建并切换到改分区,相当于一下两个命令:
git branch branchname 创建分支
git checkout branchname 切换到分区
2、查看当前指向的分支:git branch 会列出所有分支,当前指向的分支之前多了个*
3、切换分支就是git checkout branchname
4、合并分支:git merge branchname 合并branchname到当前分支
5、删除分支:git branch -d branchname 删除branchname分支
注意:创建、合并、删除分支都非常快,git鼓励使用分支完成某个任务,合并后删除分支,和直接在master分支上进行工作是一样的效果,但是过程更加安全; 这些之所以快是因为在这些过程中我们只是修改了指向分支的指针,如创建一个branch就是创建了一个指向分支的指针,然后修改HEAD指向该指针;即HEAD指向分支,分支就是提交。
*冲突解决:
git无法自动合并分支时,就必须首先解决冲突;解决冲突之后,再提交,即完成了合并
使用git log --graph 可以查看分支合并图。
*保存工作现场 git stash 保存之后就可以进行其他工作 而不影响上次的修改
恢复工作现场:
1、git stash apply 恢复时并不删除stash中内容
2、git stash pop 恢复时会删除stash中的内容
*远程库信息产看使用git remote (-v)加上-v显示信息更加详细
*分支推送到远程库:即将所有本地的提交推送到远程库
git push origin(远程库名) master (要推送的分支)
*抓取分支:git pull ; git clone
*协作模式:
1、使用git push origin branchname 推送自己的修改
2、如果推送失败,因为远程分支比本地更新,先使用git pull 合并
3、如果合并有冲突,解决冲突,在本地提交
4、再推送
注意:如果使用git pull 合并时提示 ”no tracking information“说明本地分支没有和远程分支建立链接关系,使用以下指令建立关系:git branch --set -upstream branch origin/branchname
*在本地创建与远程对应的分支:git branch -b branchname origin/branchname 本地与远程分支的名称最好一致
*创建标签
1、打标签git tag name 默认标签打在最新提交的commit上,如果想打在其他版本上,找到commit_id即可
2、显示标签:git log -pretty=oneline --abbrev -commit
git tag tag_name commit_id
3、查看标签:git tag 显示所有标签
4、查看标签信息:git show tag_name
5、创建带有说明的标签: git tag -a tag_name -m ”信息“;-a表示标签名,-m指定说明文字
*操作标签:git tag -d tag_name 删除标签
推送标签到远程库:git push origin tag_name
一次推送所有标签到远程库:git push origin --tag
上面就是Linux使用Git的方法了。
⑤ 使用java在linux之间推送文件,现在我在linux的A服务器上执行代码,想把A上的文件复制到服务器B上
给你两个思路吧
1,使用java上传下载的代码很多的,你可以搜一下,贴起来代码也比较多,就不贴了
2,使用java api操作ftp传输,这个必须要开启ftp服务
⑥ linux想挂载通过ipsan协议推送上来的磁盘,两个ip共分配了21个未分区的盘,
先安装iSCSI initiator以及iscsiadm
iscsiadm是基于命令行的iscsi管理工具,提供了对iscsi节点、会话、连接以及发现记录的操作。
iscsiadm的使用说明可以查看/usr/share/doc/iscsi-initiator-utils-6.2.0.742/README,也可以运行man iscsiadm或iscsiadm --help
#yum install iscsi-initiator-utils*
使用
下面来讲一下连接iscsi设备的步骤:
1 启动iscsi守护进程
#service iscsi start
默认情况下,系统启动后此进程会自动运行
2 发现目标
默认情况下,iscsi发起方和目标方之间通过端口3260连接。假设已知iscsi的目标方IP是192.168.1.1,运行下列命令:
#chkconfig iscsi on;chkconfig iscsi --list (查看ISCSI启动状态)
#iscsiadm -m discovery -t sendtargets -p 192.168.1.1:3260
此时找到拥有一个目标(target)
#192.168.1.1:3260,2 iqn.1995-03.com.dothill:01.array.00c0ff137675
3登入节点
以上面被发现的目标为例
# iscsiadm -m node –T iqn.1995-03.com.dothill:01.array.00c0ff137675 -p 192.168.1.1:3260 -l
其中iqn.1997-05.com.test:raid是目标名
如果要在系统启动时自动登入
# iscsiadm -m node –T iqn.1995-03.com.dothill:01.array.00c0ff137675 -p 192.168.1.1:3260 --op update -n node.startup -v automatic
登入节点后,运行
#fdisk –l
应该可以看到目标方的存储设备信息,如
Disk /dev/sdb: 3489.8 GB, 3489862254592 bytes
255 heads, 63 sectors/track, 424284 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
/dev/sdb即为连接的iscsi存储设备
登入需验证码的节点:
(1)开启认证
iscsiadm -m node -T [装置] -o update --name node.session.auth.authmethod --value=CHAP
*.使用-o同--op
(2)添加用户
iscsiadm -m node -T [装置] --op update --name node.session.auth.username --value=[用户名]
(3)添加密码
iscsiadm –m node –T [装置] –op update –name node.session.auth.password –value=[密码]
4 格式化设备
如欲将设备格式化为ext3文件系统,运行
# mkfs.ext4 /dev/sdb
5挂接设备
在/mnt下创建iscsi目录
#mkdir /mnt/iscsi
运行mount命令:
# mount /dev/sdb /mnt/iscsi
针对iscsi设备的特殊mount选项
运行df –h可以看到:
/dev/sdb 3.4T186M 3.4T 1% /mnt/iscsi
iscsi设备被成功挂接,可以当作常规存储设备使用了。
如果要在系统启动时自动挂接
编辑/etc/fstab
加入一行:
/dev/sdb /mnt/iscsi ext4 default 0 0
6 登出节点
首先解除挂接
#umount /mnt/iscsi
登出
# iscsiadm -m node –T iqn.1995-03.com.dothill:01.array.00c0ff137675 -p 192.168.1.1:3260 –u
在 iSCSI Target 服务器中使用LVM创建和设置LUN
为什么使用LUN?
LUN用于存储,SAN存储大多数由LUN的集群来组成存储池,LUN由目标器的几块物理驱动器组成。我们可以使用LUN作为系统物理驱动器来安装操作系统,LUN可以用在集群、虚拟服务器、SAN中。在虚拟服务器中使用LUN的主要用途是作为操作系统的存储。LUN的性能和可靠性根据在创建目标存储服务器时所使用的驱动器决定。
前置阅读
要了解创建iSCSI 目标器,点击下面的链接。
使用iSCSI Target创建集中式安全存储(一)
主服务器设置
系统信息和网络设置部分与前文的iSCSI 目标器相同 - 我们在相同的服务器上定义LUN。
操作系统 –CentOS6.5 (Final)
iSCSI 目标器 IP – 192.168.0.200
使用的端口 : TCP 860, 3260
配置文件 : /etc/tgt/targets.conf
在iSCSI 目标器使用LVM创建LUN
首先,用fdisk -l命令找出驱动器的列表,这会列出系统中所有分区的列表。
# fdisk -l
上面的命令只会给出基本系统的驱动器信息。为了得到存储设备的信息,使用下面的命令来得到存储设备的列表。
# fdisk -l /dev/vda && fdisk -l /dev/sda
LUN信息
上面的命令会列出可用LUN的下面这些信息
iSCSI 限定名
iSCSI 已经准备好
默认LUN 0被控制器所保留
LUN 1是我们定义的目标器
这里我为每个LUN都定义了4GB
在线: 是的,这就是可以使用的LUN
现在我们已经使用LVM为目标器定义了LUN,这可扩展并且支持很多特性,如快照。我们将会在第三部分了解如何用目标器授权,并且本地挂载远程存储。
⑦ 在Linux下搭建Git服务器
众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的。
搭建环境:
服务器 CentOS6.6 + git(version 1.8.3.1)
客户端 Windows10 + git(version 2.11.1.windows.1)
1. 安装Git相关软件
Linux是服务器端系统,Windows作为客户端系统,分别安装Git
安装客户端:
下载 Git for Windows,地址:https://git-for-windows.github.io/
安装完之后,可以使用Git Bash作为命令行客户端。
安装Gitosis
出现下面的信息表示安装成功了
2. 服务器端创建git用户来管理Git服务
3. 配置公钥
在Windows上配置管理者,git服务器需要一些管理者,通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者,打开git命令行
4. 配置gitosis
使用git用户并初始化gitosis
在Windows上机器上clone gitosis-admin到管理者主机
gitosis.conf: git服务器配置文件
keydir: 存放客户端公钥
配置 gitosis.conf 文件
在Windows管理者机器上创建本地test仓库,并上传到git服务端
提交到远程服务器
服务端会自动创建test仓库
5.添加其他git用户开发者
由于公司开发团队人数不断增多,手动添加开发者私钥到/home/git/.ssh/authorized_keys比较麻烦,通过上面的Windows机器的管理者统一收集其他开发者的私钥id_rsa.pub文件,然后传到服务器上,配置好后,用户即获得项目权限,可以从远程仓库拉取和推送项目,达到共同开发项目。
推送完成后,新加进来的开发者就可以进行项目的开发了,后续增加人员可以这样添加进来,开发者直接把仓库clone下来就可以了。