Articles of Linux操作系统

传递一个variables从PHP到bash

我似乎无法得到一个variables传递给我的bash脚本从PHP。 无论我尝试什么,$ uaddress和$ upassword都是空的。 ** ** ** ** ** ** ** ** ** ** bash ** ** ** ** ** ** ** *** #!/bin/bash -x useraddress=$uaddress upassword=$upassword ssh -p 222 -6 2400:8900::f03c:91f:fe69:8af "/var/www/localhost/htdocs/postfixadmin/scripts/postfixadmin-cli mailbox add" $useraddress –password $upassword –password2 $upassword .ssh ** * ** * ** * * php * ** * ** * ** […]

Linux x86_64上的Cassandra启动错误1.2.6

试图从最新的稳定版本在Linux上安装cassandra – http://cassandra.apache.org/download/ – 1.2.6 我已经修改了cassndra.yaml指向一个自定义目录而不是/ var,因为我没有/ var的写权限 我在启动时看到这个错误。 由于发布版似乎相对较新,因此无法在Google上find任何答案。 只是在这里张贴,以防万一我的一个愚蠢的错误。 相同的分配文件在我的macos x86_64机器上正常工作。 INFO 19:24:35,513 Not using multi-threaded compaction java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:322) at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:229) at org.xerial.snappy.Snappy.<clinit>(Snappy.java:48) at org.apache.cassandra.io.compress.SnappyCompressor.create(SnappyCompressor.java:45) at org.apache.cassandra.io.compress.SnappyCompressor.isAvailable(SnappyCompressor.java:55) at org.apache.cassandra.io.compress.SnappyCompressor.<clinit>(SnappyCompressor.java:37) at org.apache.cassandra.config.CFMetaData.<clinit>(CFMetaData.java:82) at org.apache.cassandra.config.KSMetaData.systemKeyspace(KSMetaData.java:81) at org.apache.cassandra.config.DatabaseDescriptor.loadYaml(DatabaseDescriptor.java:468) at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:123) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:211) at […]

暂时禁用mysql远程访问

我需要在Linux服务器上进行夜间mysql维护时使远程访问变得无效,以便在这段时间内没有人能够查询数据库。 我不能做SERVICE MYSQL STOP,因为那时我无法做我需要做的事情(截断和重build一对表)。 有没有办法短时间closures外部访问? 提前致谢。

虽然没有任何投入,为什么投票仍在返回?

我写了一个小testing程序来弄清楚如何与poll进行交谈。 我创build了三个文件testa , testb , testc ,并将stringhello\n写入第一个。 所以,这里是我的poll : poll(polls.data(),polls.size(),-1) 根据手册页,超时-1应表明系统调用永远不会超时。 然而,它没有任何东西可以读。 我总是消耗一个字节的input,可以看到你打印的hello\n ,但民意调查并没有停止在那里。 它只是假装在那里有东西要读。 #include <sys/types.h> #include <sys/stat.h> #include <sys/fcntl.h> #include <sys/poll.h> #include <unistd.h> #include <errno.h> #include <vector> #include <map> #include <string> #include <iostream> typedef int fd_t; int main() { fd_t const a = open("testa",O_RDONLY); fd_t const b = open("testb",O_WRONLY); fd_t const c = […]

字符设备捕获多个(int)ioctl参数

我必须编写一个linux char设备,它可以为每个unlock_ioctl处理ioctl(无BKL)函数。 目前,我可以从用户空间ioctl命令收到一个参数 __get_user(myint, (int __user *) arg); 我怎样才能接收多个int参数(例如这个调用)? ioctl(fp, SZ_NEW_DEV_FORMAT, 0, 1, 30);

无法理解Linux内核模块中read_proc的工作

我正在阅读此页面上的内核模块示例 程序中使用的read_proc如下所示: int fortune_read( char *page, char **start, off_t off, int count, int *eof, void *data ) { int len; if (off > 0) { *eof = 1; return 0; } /* Wrap-around */ if (next_fortune >= cookie_index) next_fortune = 0; len = sprintf(page, "%s\n", &cookie_pot[next_fortune]); next_fortune += len; return len; } 有人可以解释为什么off被检查为大于0.此外,有人可以解释什么是closures和计数论证的重要性。 到目前为止,我的理解是,我们必须在页面上写入数据,并且在数据结束时必须设置eof。 谢谢。

如何closureswrite()系统调用的缓冲?

我曾经认为write()系统调用是无缓冲的, fwrite和fread用于缓冲IO。 不过,我写了一些简单的程序来确定在使用write()时仍然有一些缓冲。 我在套接字上使用write()和read() 。 由于缓冲,服务器不停地发送数据包时,客户端可能会滞后。 我不要那个。 我希望客户端必须在服务器发送更多logging之前消耗logging。 我怎样才能做到这一点,而不增加确认等networking负载! 我在linux上使用gcc server.c: #include <stdio.h> #include <errno.h> #include <sys/socket.h> #include <arpa/inet.h> #include <stdio.h> #include <netinet/in.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <netinet/tcp.h> int remote_rr_port=2000; // Server will send RR logs using connection on this port. char const *remote_server_ip="127.0.0.1"; int connFD_rr; static void startTcpServer(int *sd, […]

获取组合键

如何获得键盘上的按键组合( Ctrl + somekey , Alt + somekey )与Java? 我使用KeyEvent监听器, MouseEvent监听MouseEvent监听键盘上的所有按键。 我可以通过使用该侦听器捕获键盘上的所有关键事件。 但是,我不能抓住( Ctrl + Alt + Del )等键组合。

Raspbian上的蓝牙LE

我使用以下configuration从源代码安装了bluez-5.15: $ ./configure –prefix=/usr –mandir=/usr/share/man –sysconfdir=/etc \ –localstatedir=/var –libexecdir=/lib –disable-systemd 然后,我必须手动将gatttool复制到/ usr / local / bin目录中 $ sudo cp attrib/gatttool /usr/local/bin/ 我重新启动了树莓派,并尝试以下连接到我的BLE设备: $ sudo hciconfig hci0 up $ sudo hcitool lescan LE Scan … EA:FB:B5:CE:B0:13 DfuTarg $ sudo hcitool lewladd EA:FB:B5:CE:B0:13 $ sudo hcitool lecc EA:FB:B5:CE:B0:13 Could not create connection: Input/output error 那么我试着用gattool连接: $ gatttool […]

UDP数据包由linux内核丢弃

我有一个服务器,通过多播发送UDP数据包和一些列表到这些多播数据包的客户端。 每个数据包的固定大小为1040字节,服务器发送的全部数据量为3GB。 我的环境如下: 1千兆比特以太网 40个节点,1个发送者节点和39个接收器节点。 所有节点具有相同的硬件configuration:2个AMD CPU,每个CPU有2个2.6GHz的内核 在客户端,一个线程读取套接字并将数据放入队列中。 一个额外的线程从队列中popup数据并执行一些轻量级处理。 在组播传输期间,我认识到节点端的丢包率为30%。 通过观察netstat -su统计信息,我可以说,客户端应用程序丢失的数据包等于netstat输出中的RcvbufErrors值。 这意味着所有丢失的数据包都被操作系统丢弃,因为套接字缓冲区已满,但我不明白为什么捕获线程无法及时读取缓冲区。 在传输过程中,4个核心中的2个被利用了75%,其余的正在睡觉。 我是唯一一个正在使用这些节点的人,而且我认为这种机器在处理1Gbit带宽方面没有问题。 我已经做了一些优化,通过为amd cpus添加g ++编译器标志,这将数据包丢失率降低到10%,但是在我看来,它仍然太高。 当然我知道UDP是不可靠的,我有自己的修正协议。 我没有任何pipe理权限,因此我无法更改系统参数。 任何提示如何提高性能? 编辑:我解决了这个问题,使用2线程正在读取套接字。 有时recv套接字缓冲区仍然变满。 但平均下降不到1%,所以处理它不是问题。