NYOJ1036 非洲小孩 【贪心】

本地单文件上传脚本,命名uf

这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径。

技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径。

#!/bin/bash
cur_dir=$(cd "$(dirname "$1")"; pwd)
name=$(basename "$1")
/home/grm/bin/bpcs_uploader/bpcs_uploader.php upload $1 AWIN$cur_dir/$name

本地文件夹上传脚本,命名ud

bpcs_uploader脚本只能实现单个文件上传,用此脚本可以实现目录批量上传。

技术要点:通过find命令输出目录下所有文件,用xargs
-t -n1
实现单个输出,从而可以遍历目录下所有文件,并作为参数逐次赋予脚本uf,通过不断调用脚本uf实现批量上传。

#!/bin/bash
find $1 -name ‘*.*‘ |xargs -t -n1 /home/grm/bin/uf

服务器数据库每日备份脚本,命名backupday.sh(改自鸟哥的linux私房菜)

技术要点:基本都是常规操作,注意find命令-mtime参数的使用

#!/bin/bash
# =========================================================
# 请输入,你想让备份数据放置到那个独立的目录去
basedir=/backup/daily/

# =========================================================
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
basefile1=$basedir/mysql.$(date +%Y-%m-%d).tar.bz2
basefile2=$basedir/cgi-bin.$(date +%Y-%m-%d).tar.bz2
[ ! -d "$basedir" ] && mkdir $basedir

# 1. MysQL (数据库目录在 /var/lib/mysql)
cd /var/lib
  tar -jpc -f $basefile1 mysql 

# 2. 定期删除旧备份
DAYS=30
find $basedir -name "mysql*" -type f -mtime +$DAYS -exec rm {} \;

代码及其他配置每周备份脚本,命名为backupweek.sh

#!/bin/bash
# ====================================================================
# 使用者参数输入位置:
# basedir=你用来储存此脚本所预计备份的数据之目录(请独立文件系统)
basedir=/backup/weekly  

# ====================================================================
# 底下请不要修改了!用默认值即可!
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C

D=$(date +"%Y-%m-%d")

# 配置要备份的服务的配置档,以及备份的目录
postfixd=$basedir/postfix
vsftpd=$basedir/vsftp
sshd=$basedir/ssh
wwwd=$basedir/www
others=$basedir/others
userinfod=$basedir/userinfo
# 判断目录是否存在,若不存在则予以创建。
for dirs in $postfixd $vsftpd $sshd $wwwd $others $userinfod
do
    [ ! -d "$dirs" ] && mkdir -p $dirs
done

# 1. 将系统主要的服务之配置档分别备份下来,同时也备份 /etc 全部。

cd /etc/
    tar -jpc -f $vsftpd/vsftpd.$D.tar.bz2 vsftpd
cd /etc/
    tar -jpc -f $sshd/sshd.$D.tar.bz2 sshd ssh
cd /etc/
    tar -jpc -f $wwwd/httpd.$D.tar.bz2 httpd
cd /var/www
  tar -jpc -f $wwwd/html.$D.tar.bz2    html
cd /
  tar -jpc -f $others/etc.$D.tar.bz2   etc

# 2. 关於使用者参数方面
cp -a /etc/{passwd,shadow,group}    $userinfod
cd /var/spool
  tar -jpc -f $userinfod/mail.$D.tar.bz2   mail
cd /
  tar -jpc -f $userinfod/home.$D.tar.bz2   home
cd /var/spool
  tar -jpc -f $userinfod/cron.$D.tar.bz2   cron at

# 3. 定期删除旧备份
DAYS=30
find $vsftpd -name "vsftpd*" -type f -mtime +$DAYS -exec rm {} \;
find $sshd -name "sshd*" -type f -mtime +$DAYS -exec rm {} \;
find $wwwd -name "ht*" -type f -mtime +$DAYS -exec rm {} \;
find $others -name "etc*" -type f -mtime +$DAYS -exec rm {} \;
find $userinfod -name "cron*" -type f -mtime +$DAYS -exec rm {} \;
find $userinfod -name "home*" -type f -mtime +$DAYS -exec rm {} \;
find $userinfod -name "mail*" -type f -mtime +$DAYS -exec rm {} \;

自动上传脚本auto_upload_daily.sh

其中upload.sh的代码与本地脚本uf相同。简言之,脚本uf是云备份的基础。

#!/bin/bash
LOCAL_DATA=/backup/daily
MYSQL_BACKUP=mysql.$(date +"%Y-%m-%d").tar.bz2

upload.sh $LOCAL_DATA/$MYSQL_BACKUP

自动上传脚本auto_upload_weekly.sh

#!/bin/bash
LOCAL_DATA=/backup/weekly
D=$(date +"%Y-%m-%d")

HTTP=www/httpd.$D.tar.bz2
HTML=www/html.$D.tar.bz2
ETC=others/etc.$D.tar.bz2
HOM=userinfo/home.$D.tar.bz2
MAIL=userinfo/mail.$D.tar.bz2
PASSWD=userinfo/passwd.$D.tar.bz2
SHADOW=userinfo/shadow.$D.tar.bz2
SSHD=ssh/sshd.$D.tar.bz2
VSFTPD=vsftpd/vsftpd.$D.tar.bz2
CRONA=userinfo/cron.$D.tar.bz2

upload.sh $LOCAL_DATA/$HTTP
upload.sh $LOCAL_DATA/$HTML
upload.sh $LOCAL_DATA/$ETC
upload.sh $LOCAL_DATA/$HOM
upload.sh $LOCAL_DATA/$MAIL
upload.sh $LOCAL_DATA/$PASSWD
upload.sh $LOCAL_DATA/$SHADOW
upload.sh $LOCAL_DATA/$CRONA
upload.sh $LOCAL_DATA/$SSHD
upload.sh $LOCAL_DATA/$VSFTPD

最后,再启动定时任务

为防止网络出现问题导致上传失败,重复了3次上传操作

# crontab -l
01 1 * * * /bin/backupday.sh 2>>/backup/errors.log
20 1 * * 0 /bin/backupwk.sh 2>>/backup/errors.log
01 2 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log
01 4 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log
01 6 * * * /bin/auto_upload_daily.sh 2>>/backup/errors.log
20 2 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log
20 4 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log
20 6 * * 0 /bin/auto_upload_weekly.sh 2>>/backup/errors.log

NYOJ1036 非洲小孩 【贪心】,布布扣,bubuko.com

时间: 2024-08-16 00:10:03

NYOJ1036 非洲小孩 【贪心】的相关文章

NYOJ-1036 非洲小孩

非洲小孩 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗澡.) 现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!) 每个小孩有一个时间段能够洗澡.并且,他们是可以一起洗的(不管你是男孩是女孩). 那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的"澡"神啊."

NYOJ-1036 非洲小孩(贪心)

非洲小孩 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢?第一,他们地处热带,太阳辐射严重.第二,他们不经常洗澡.(常年缺水,怎么洗澡.)现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!)每个小孩有一个时间段能够洗澡.并且,他们是可以一起洗的(不管你是男孩是女孩).那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的"澡"神啊."澡&quo

非洲小孩(南阳oj1036)(贪心)

非洲小孩 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗澡.) 现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!) 每个小孩有一个时间段能够洗澡.并且,他们是可以一起洗的(不管你是男孩是女孩). 那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的"澡"神啊."

非洲小孩

非洲小孩 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗澡.) 现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!) 每个小孩有一个时间段能够洗澡.并且,他们是可以一起洗的(不管你是男孩是女孩). 那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的"澡"神啊."

nyoj 非洲小孩

非洲小孩 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢?第一,他们地处热带,太阳辐射严重.第二,他们不经常洗澡.(常年缺水,怎么洗澡.)现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!)每个小孩有一个时间段能够洗澡.并且,他们是可以一起洗的(不管你是男孩是女孩).那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的"澡"神啊."澡&quo

问题 N: 非洲小孩

题目描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗澡.) 现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!) 每个小孩有一个时间段能够洗澡.并且,他们是可以一起洗的(不管你是男孩是女孩). 那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的“澡”神啊.“澡”神有一个时间表,记录着该部落的小孩,什么时候段可以洗澡.现在, “澡”神要问你,一天内,他需要

1411010737-ny-非洲小孩

 非洲小孩 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经常洗澡.(常年缺水,怎么洗澡.) 现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!) 每个小孩有一个时间段能够洗澡.并且,他们是可以一起洗的(不管你是男孩是女孩). 那么,什么时间洗澡,谁应该来洗,由谁决定的呢?那必然是他们伟大的"澡"神啊.&qu

NYOJ 891 找点

找点 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点.但是这几天LYH太忙了,你们帮帮他吗? 输入 多组测试数据. 每组数据先输入一个N,表示有N个闭区间(N≤100). 接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点. 输出 输出一个整数,表示最少需要找几个点. 样例输入 4 1 5 2 4 1 4 2 3 3 1 2 3 4 5 6 1 2 2 样例

善良的力量可以像滚雪球,越滚越大

未经许可,谢绝任何形势的转载 每个人心中都住着一个善良的孩子 不久前腾讯新闻推送了的一则比较老的新闻,主人公的名字叫凯瑟琳.新闻中大致说了她在2006年做的一件影响很大的事情:帮助非洲儿童远离疟疾(念nue),拯救了上百万个小生命.我很喜欢这种天真善良的小朋友,我们一起来看看她的故事. 凯瑟琳出生在美国田纳西州一个幸福的家庭,妈妈是一个家庭妇女,爸爸安东尼是一个健身教练. 2006年4月初的一天,那时候凯瑟琳才5岁,她正在看电视的时候,看到非洲纪录片,纪录片正讲述非洲每30秒就会有一个小孩子死去