小编lel*_*uch的帖子

从bash脚本中为多个收件人使用sendmail

我在cron中运行bash脚本,以便在满足特定条件时向多个收件人发送邮件.

我编码了这样的变量:

subject="Subject"
from="user@domain.com"
recipients="user1@gmail.com user2@gmail.com"
mail="subject:$subject\nfrom:$from\nExample Message"
Run Code Online (Sandbox Code Playgroud)

而实际发送:

echo -e $mail | /usr/sbin/sendmail "$recipients"
Run Code Online (Sandbox Code Playgroud)

问题是只有user2@gmail.com正在接收电子邮件.如何更改此设置以便所有收件人都能收到电子邮件?

注意:解决方案必须与sendmail,我使用jailshell,它似乎是唯一可用的方法

bash sendmail

33
推荐指数
3
解决办法
15万
查看次数

使用shell脚本将数据插入远程MYSQL数据库

我一直在尝试使用shell(bash)脚本将行插入REMOTE数据库,但我遇到了一些麻烦:(

该脚本用于将文件上载到服务器,获取URL,HASH和文件大小,连接到远程mysql数据库,并将数据插入现有表中.我已经让它工作,直到远程MYSQL数据库位.

它看起来像这样:

#!/bin/bash

zxw=randomtext
description=randomtext2

for file in "$@"
 do
 echo -n *****
 ident= *****
 data= ****
 size=` ****
 hash=`****
mysql --host=randomhost --user=randomuser --password=randompass randomdb
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
echo "done"
done
Run Code Online (Sandbox Code Playgroud)

我是编程的总菜鸟所以你是:P

无论如何,我添加了\以逃避括号,因为我遇到了错误.就像现在一样,脚本工作正常,直到连接到mysql数据库.它只是连接到mysql数据库而不执行insert命令(我甚至不知道insert命令是否可以在bash中工作).

PS:我已经从命令行逐个尝试了两个mysql命令,但是他们工作了,虽然我定义了hash/file/size并且没有转义"\".

无论如何,你们怎么想?是我试图做甚至可能吗?如果是这样的话?

任何帮助,将不胜感激 :)

mysql bash shell scripting

15
推荐指数
3
解决办法
9万
查看次数

在C中传递一组结构

我无法将结构数组传递给C中的函数.

我在main中创建了这样的结构:

int main()
{
    struct Items
    {
        char code[10];
        char description[30];
        int stock;
    };

    struct Items MyItems[10];
}
Run Code Online (Sandbox Code Playgroud)

然后我像访问它一样:MyItems[0].stock = 10;等等

我想将它传递给像这样的函数:

 ReadFile(MyItems);
Run Code Online (Sandbox Code Playgroud)

该函数应该读取数组,并能够编辑它.然后我应该能够从其他函数访问相同的数组.

我已经尝试了大量的声明,但没有一个有效.例如

void ReadFile(struct Items[10])
Run Code Online (Sandbox Code Playgroud)

我已经浏览了其他问题,但问题是它们都是完全不同的,使用typedef和asterisks.我的老师还没有教过我们指针,所以我想用我所知道的来做.

有任何想法吗?:S

编辑:Salvatore的答案是在我将原型修复为:

void ReadFile(struct Items[10]);
Run Code Online (Sandbox Code Playgroud)

c

10
推荐指数
2
解决办法
6万
查看次数

我应该使用文本文件还是数据库?

所以我正在整理一个RSS解析器,它将处理RSS提要,过滤它,然后下载匹配的项目.假设正在下载的文件是合法的torrent文件.

现在我需要保存已经下载的文件的记录,因此它们不会再次完成.

我已经使用SQLite(如果不存在则创建数据库,如果select语句没有返回任何内容则插入行),但生成的jar文件是2.5MB +(由于sqlite库).

我想如果我使用文本文件,我可以将jar文件减少到几百千字节.

我可以保存下载的文件名列表 - 每行一个 - 并将整个文件读入内存,搜索文件是否存在等.

我遇到的几个问题都知道:

  • 假设每天下载10个文件,文本文件方法最终会占用太多资源吗?
  • 总的来说哪一个更快

无论如何,你们怎么想?我可以在这里使用一些建议,因为我还是新手编程并且这是一个爱好的事情:)

java database

7
推荐指数
1
解决办法
1339
查看次数

无法从cin.get()获取char

我正在进行一些关于c ++的初学者练习,这让我很难过.我可以输入一个数字,但之后我没有选择输入一个字符,它会跳到最后一行.

我知道我可以使用cin >>符号,但我想知道为什么这不起作用.

#include<iostream>
using namespace std;

int main() {

    cout << "Enter a number:\n";
    int number;
    cin >> number;

    char symbol;
    cout << "Enter a letter:\n";
    cin.get(symbol);

    cout << number << " " << symbol << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ cin

6
推荐指数
2
解决办法
1万
查看次数

在bash中的并行进程之间添加等待

我有一个bash脚本可将数据上传到站点。我的上传速度越来越慢,因此我开始使用xargs和-N1并行运行它,同时运行5个。

但是,问题是服务器是否要求我解决一次验证码,如果我一次运行5次,而一次运行1次则可以正常工作。

我认为这是因为所有进程都完全在同一时间启动,因此我被标记了。

无论如何,这就是问题所在,我有什么办法可以在xargs / gnu并行启动过程之间添加等待时间(例如1秒)吗?

我唯一想出的就是使用pgrep脚本| wc -1来计算脚本实例,并休眠该秒数。

但是,这实际上不是最佳选择,是否有更好的方法呢?

linux parallel-processing bash shell xargs

5
推荐指数
1
解决办法
3041
查看次数

如何在名称中查找带方括号的文件

我试图找到一些方括号的文件,但我似乎无法让它工作.

我的文件命名如下:

[ABC] test file.txt

Regexp我正在尝试:

find . -iregex '\[abc\].*test.*'
Run Code Online (Sandbox Code Playgroud)

这似乎不是出于某种原因.如果我用 - 替换它 -

find . -iregex '.*abc.*test.*'
Run Code Online (Sandbox Code Playgroud)

- 工作正常.所以问题在于方括号.有任何想法吗?

regex linux find

5
推荐指数
1
解决办法
1051
查看次数

绘制一个类图

我得到了类名,属性和方法. 类

我不确定他们之间的关系是什么,所以如果有人能在我开始画画之前纠正我,我会很感激:

游戏与体育有一对多的关系.体育与赛事有一对多的关系.活动与Race有一对多的关系.

而Heat和Final是Race的子类.

你怎么看?

uml class-diagram

2
推荐指数
1
解决办法
471
查看次数

将字符串转换为数字

说我有一个字符串 phone = "1-800-test"

我需要将字母转换为数字.

做这样的事情是行不通的(注意我当然是循环它):

phone = phone.replace(phone.charAt(9), (char) getNumber(phone.charAt(9)));
Run Code Online (Sandbox Code Playgroud)

请注意,这getNumber()是一个带字母并返回数字的方法:

int getNumber(char uppercaseLetter)
Run Code Online (Sandbox Code Playgroud)

无论如何,我得到一些奇怪的输出,字母被一个奇怪的方格所取代.

我该如何用数字代替字母?

java

2
推荐指数
1
解决办法
1620
查看次数

多线程xargs与cat的输入

我的files.txt服务器上有一个文本文件,每行都是一个带有完整路径的文件,例如/home/lelouch/dir/randomfile.txt.

我想循环遍历files.txt,并将每个文件名传递给另一个脚本.

我已经让这个像这样工作:

cat /home/lelouch/dir/files.txt | xargs -0 -n 1 -P 30 /home/lelouch/bin/script.
Run Code Online (Sandbox Code Playgroud)

问题是,虽然我想一次处理30个文件,但它一次只发生1个文件.我尝试了其他一些方法,但我还没有像我想的那样工作.

有任何想法吗?

bash xargs

2
推荐指数
2
解决办法
6337
查看次数

从C中读取二进制文件

我有以下结构:

struct Records
{
    int Number;
    char Name[20];
    float Salary;
};
Run Code Online (Sandbox Code Playgroud)

使用以下方法编写两条

fwrite(&MyRecords.Number, sizeof(&MyRecords.Number), 1, binaryfile);
fwrite(&MyRecords.Name, sizeof(&MyRecords.Name), 1, binaryfile);
fwrite(&MyRecords.Salary, sizeof(&MyRecords.Salary), 1, binaryfile);
Run Code Online (Sandbox Code Playgroud)

写完后,我无法从中读取.

FILE * read;
read = fopen("binaryfile.dat","rb");

for(int x =0;x<2;x++)
{
fread(&records.Number, sizeof(records.Number), 1, read);
fread(&records.Name, sizeof(records.Name), 1, read);
fread(&records.Salary, sizeof(records.Salary), 1, read);
printf("%d %s %f\n",records.Number,records.Name,records.Salary);
} 
Run Code Online (Sandbox Code Playgroud)

第一行打印两次,浮动出现一些奇怪的数字.我在过去的2个小时内检查了两倍和三倍但我无法找出我做错了什么:(

c

0
推荐指数
1
解决办法
178
查看次数

标签 统计

bash ×4

c ×2

java ×2

linux ×2

shell ×2

xargs ×2

c++ ×1

cin ×1

class-diagram ×1

database ×1

find ×1

mysql ×1

parallel-processing ×1

regex ×1

scripting ×1

sendmail ×1

uml ×1