Linux FTP服务器搭建和crontab计划任务制定由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“linuxftp服务器搭建”。
搭建FTP服务器:
1.先用rpm-qa| grep vsftpd命令检查是否已经安装,如果ftp没有安装,使用yum-yinstall vsftpd 安装,(ubuntu 下使用apt-get install vsftpd)
2.service vsftpd start
启动要让FTP每次开机自动启动,运行命令:chkconfig--level 35 vsftpd on
3.设置ftp权限
vi/etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO
ESC返回,输入“:wq”保存并推出
4.添加ftp帐号和目录
useradd-d /alidata/www/wwwroot-s /sbin/nologin pwftp
pawdpwftp
chmod-R 755 /alidata/www/wwwroot
chown-Rpwftp /alidata/www/wwwroot
/etc/rc.d/init.d/vsftpd restart
然后用帐号pwftp密码123456
测试下就可以登陆ftp了。目录是/alidata/www/wwwroot
出现的问题描述和解决方法:
linux FTP连接出错500 OOPS: cannot change directory:/home/li
在linux下安装vsftp后,ftp居然连不上,出现以下错误
错误现象:
状态:正在连接 192.168.1.112...状态:已经连接到 :6148。正在等待欢迎信息...响应:220(vsFTPd 2.3.4)
命令:USER li
响应:331 Please specify the paword.命令:PASS ********
响应:500 OOPS: cannot change directory:/home/li
错误:已经从服务器断开
错误:连接失败
解决方法1:
#setsebool ftpd_disable_trans
1#service vsftpd restart
如果出现: Could not change active booleans: Invalid boolean
按以下操作:
#setsebool ftp_home_dir=1
#service vsftpd restart
解决方法2:
#setsebool-P ftpd_disable_trans 1
#service vsftpd restart
安装ftp特别注意关闭ftp防火墙或者使用service iptables stop关闭防火墙规则
但是按以上操作后,每次虚拟机重启后,问题依然存在。要想彻底解决,需要将selinux关闭对FTP的保护
查看SELinux状态:
1、/usr/sbin/sestatus-v##如果SELinux status参数为enabled即为开启状态
SELinux status:enabled2、getenforce##也可以用这个命令检查
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0##设置SELinux 成为permiive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
crontab定时器用法和定时运行shell脚本
今天在网上看到这篇不错的教程,是介绍CronTab的,写的很清楚。所以转载过来,做个分享。
限制用户使用crontab的文件有:/etc/cron.allow /etc/cron.deny。
当使用crontab建立工作排程后,将被记录到/var/spool/cron里。
cron执行的每一项工作都被记录到/varlog/cron里去。
crontab参数:
-u:只有root才可能,帮其他用户建立或移除工作排程。
-l:查阅crontab的工作内容
-r:移除所有的crontab的工作内容,移除一项,用-e编辑。
例1:每天12:00给root发信。
[root@lyy etc]# crontab-e#用vi编辑
0 12 * * * mail root-s “at 12:00”
每项工作有六个字段分别是:
分钟小时日期月份周指令
0-590-231-311-120-7指令#0和7都代表星期天
辅助特殊字符:
*(星号)代表任何时刻,(逗号)代表分隔时候。如3点与6点 就是3,6
-(减号)代表一段时间范围内。如:3点到6点 就是3-6
/n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/
5例2:每隔3分钟,在屏幕输出字符
[root@lyy etc]# crontab-e
[root@lyy etc]# crontab-l
*/3 * * * * echo “hello world!!!” > /dev/pts/0#pts/0是用telnet的终端接口
查看一下记录
[root@lyy etc]# cat /var/log/cron
Dec 12 20:27:01 lyy crond[9865]:(root)CMD(echo “hello world!!!” > /dev/pts/0)Dec 12 20:30:01 lyy crond[9908]:(root)CMD(echo “hello world!!!” > /dev/pts/0)
例3:每个星期三下午14:30分发送一个邮件给pc
[root@lyy etc]# crontab-e14 * * 3 mail pc-s “test” < /home/text.txt
crontab-e 是针对用户的cron设计的,如果是系统例行性任务,只要编
辑/etc/crontab文件就可以了。
查看/etc/crontab文件内容
[root@lyy etc]# cat /etc/crontab
SHELL=/bin/bash#接口
PATH=/sbin:/bin:/usr/sbin:/usr/bin#执行路径搜寻
MAILTO=root#以mail发送者
HOME=/#家目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly#每小时
02 4 * * * root run-parts /etc/cron.daily#每天4 * * 0 root run-parts /etc/cron.weekly#每周日
4 1 * * root run-parts /etc/cron.monthly#每个月1号
取消不要的输出项目:把输出的结果以命令重定向到/dev/null
安全检验:由于一些木马以例行命令方式值入,所以可以通过
检查/var/log/cron来发现。
周与日月不可同时并存
如:12 11 9 5 root echo “just test ” #这是错误的写法。
本来以为九月十一号是星期五执行这个任务,但是系统可能会判定每个星期
五执行一次或每年九月十一号分别执行。
唤醒停机期间的工作任务 anacron
anacron不能取代crontab,它存在目的是处理非24小时在线的linux系统的crontab的执行。它是以天为单位或在开机后执行,它会检查停机期间的crontab并执行,然后就自动停止了。
linux命令:
建立任务crontab-e
*/1 * * * * echo 'ddd'/var/test.txt 一分钟写一次ddd到test.txt文件中
* * * */1 * sh /var/jbo-4.0.5.GA/server/default/log/temp/delete_log1.sh 一个月运行一次delete_log1.sh脚本
sh脚本(delete_log1.sh)
dd=`date-d“1 month ago” +%y-%m`
rm-vf /var/temp/log.20$dd-*删除当前时间的起一个月的匹配文件
但是特别需要注意的是有好多人忽略了当crontab中使用sh执行定时任务时sh脚边中要包含你命令所需的环境变量,因为crontab无法自动读取,下面列出几个大家比较常犯的错误:
1、shell输出中包含了汉字,那就需要引入相应的LANG环境变量,先在终端上用echo &LANG查看你当前的环境变量,然后再把export LANG='你echo出来的变量值'添加进你的sh脚本中;
2、shell中使用了java相关的执行命令,如:java-jar ****.jar,那么你就要把此命令的完整绝对目录要列出来,这样
在crontab才能识别出来,就如:/usr/java/jdk1.7.0_51/jre/bin/java-jar *****.jar,前面所示的就为我机器上面的Java命令的完整目录,否则就会出现“Error: Unable to acce jarfile ****.jar”的错误;
3、执行任何命令或者文件时都要使用完整的绝对路径,否则crontab也是识别不出来的,当然也就无法执行下去了。